A.3 — Using libraries with Code::Blocks

To recap the process needed to use a library:

Once per library:
1) Acquire the library. Download it from the website or via a package manager.
2) Install the library. Unzip it to a directory or install it via a package manager.
3) Tell the compiler where to look for the header file(s) for the library.
4) Tell the linker where to look for the library file(s) for the library.

Once per project:
5) Tell the linker which static or import library files to link.
6) #include the library’s header file(s) in your program.
7) Make sure the program know where to find any dynamic libraries being used.

Steps 1 and 2 -- Acquire and install library

Download and install the library to your hard disk. See the tutorial on static and dynamic libraries for more information about this step.

Steps 3 and 4 -- Tell the compiler where to find headers and library files

We are going to do this on a global basis so the library will be available to all of our projects. Consequently, the following steps only need to be done once per library.

A) Go to the “Settings menu” and pick “Compiler”.

B) Click the “Directories” tab. The compiler tab will already be selected for you.

C) Press the “Add” button, and add the path to the .h files for the library. If you are running Linux and installed the library via a package manager, make sure /usr/include is listed here.

D) Click the “Linker” tab. Press the “Add” button, and add the path to the .lib files for the library. If you are running Linux and installed the library via a package manager, make sure /usr/lib is listed here.

E) Press the “OK” button.

Step 5 -- Tell the linker which libraries your program is using

For step 5, we need to add the library files from the library to our project. We do this on an individual project basis.

A) Right click on the bolded project name under the default workspace (probably “Console application”, unless you changed it). Choose “Build options” from the menu.

B) Click the linker tab. Under the “Link libraries” window, press the “Add” button and add the library you wish your project to use.

C) Press the “OK” button

Steps 6 and 7 -- #include header files and make sure project can find DLLs

Simply #include the header file(s) from the library in your project.

See the tutorial A.1 -- static and dynamic libraries for more information step 7.

B.1 — Introduction to C++11
A.2 -- Using libraries with Visual Studio 2005 Express

10 comments to A.3 — Using libraries with Code::Blocks

  • Programmer2013

    Library NTL for Windows - Codeblocks, perhaps it is easier to install as shown in the video or

  • piciurica

    Hi guys,

    Alex, thank you for the huge amount of work that you've been doing for us! It is very helpful, especially for people like me, the kitchen table learners :d.

    Has anyone worked with PDF Creator Pilot library and Code::Blocks 13.12?

    I ask because I did the following steps:
    - downloaded the library
    - installed it
    - copied the PDFCreatorPilot.dll in C:WindowsSystem32 and C:WindowsSysWOW64
    - added it in the PATH variable
    - restarted the computer
    - copied the PDFCreatorPilot.dll in the directory of the executable of my program
    - followed by the steps depicted in the tutorial

    and for some reason it is not working :(.

    When I include one of the *.h files, the CB gives errors like the following "error: 'DLLEXPORT' does not name a type".

    Is there anything else that I need to do (copy files from/to different locations) or some key lines that are missing from my main?

    Does the order of the steps count?

    Any suggestion is greatly appreciated! Thank you!

  • northyorker

    Thank you very much. I learn to us Codes Block with boost libraries.

  • John Holcomb

    Thank you so much for maintaining this web site. I was absolutely stuck, and this page gave me the knowledge to break
    through the wall that was confronting me. Now I know how to link my compiler to libraries... thanks to you.

  • nhatphutho

    thank you very much!
    Your post is very useful!

  • Mike

    Hi, I need to add libnoise to Code::Blocks in order to work with perlin noise. I added the libraries of libnoise, and made a little test which compiles with no problems. But, whenever I try to build and run the project, it sends me a message which says: undefined reference to 'noise::module::perln::Perlin()', and five similar messages.

    I don't know if I did something wrong. I saved the libraries in C:libnoise. I added in >>Settings>>Compiler and Debugger>>Search directories C:/libnoise/include which contains the headers; and C:/libnoise/bin which contains libnoise.lib

    I did exactly the same in >>Settings>>Compiler and Debugger>>Linker

    As the tutorial shows, In >>Project build options>>Project_Name>>Linker settings I added C:libnoise/bin/libnoise.lib

    In theory, this should be enough to build the project, but it's not.

    Please, somebody who have worked with libnoise or have an idea about what is wrong, please write a reply.

    I had to use / instead of a slash.

  • Jon

    Hey man, I just wanted to give you props for this - you saved me! Code::Blocks is truly fantastic, and I was hoping to get it working.

  • Arash

    Thanks Alex.
    God bless you.

  • Zeus

    This was an amazing tutorial. This was perfect to the problem I had earlier, and it helped me solve it! Your the best Alex thanks!

  • Ismail


    I just wanted to thank whom ever is behind this website, i think it's one of the best
    tutorials i have seen so far on the web, as i have a good background in java, but very newbie
    to C and C++ i think this website is a goldmine for anyone who want to discover these
    fantastic languages, i mean, C C++ Java Perl Pascale etc..

    I have one thing i don't like though, is microsoft all he has done is copying
    like C# it is exactly like java with Capitalized methods.

    I am sorry but as far as microsoft is concerned to me he is just like a parasite.

    Well done guys to everything you're doing

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">