Monday, October 22, 2018

ide - Problems importing libraries to my c++ project, how to fix this?



I'm using the IDE to compile my program, and have some trouble to import/integrate a specific library with it.



I get error messages like



fatal error: 3rdPartyLib.h: No such file or directory


for a




#include "3rdPartyLib.h"


statement



ld.exe: cannot find `lib3rdParty.a`


for specifying




3rdParty


in the additional libraries



At least I got some error message like



undefined reference to `lib3rdParty::foo()'



What can I do to fix this?


Answer



It's a common misconception, that the current IDE used, is responsible for getting errors like stated in the question.
See for example





The problem is almost never related to the currently used IDE.
In the most cases the solution boils down, to supply the actual toolchain's compiler/linker with the appropriate path's to search for included headers, to be linked libraries.



One of the major applicable answers for the linker related problems are











Most of the common IDEs provide features to configure this for a specific project. Here are some samples







Eclipse-CDT



Include path settings:
enter image description here



Library & library search path settings
enter image description here







Visual Studio 2013



enter image description here






Code Blocks
enter image description here
enter image description here







**DEV C++ (Bloodshed C++)



As from their FAQ:




9. How can i use the OpenGL library and others ?




All the libraries that comes with Mingw reside in the Lib directory. They are all named in the following way: lib*.a
To link a library with your project, just add in Project options, Further option files :
-lopengl32
This is for including the libopengl32.a library. To add any other library, just follow the same syntax:
Type -l (L in lowercase) plus the base name of the library (filename without lib and the .a extension).




You may also consider putting a -L option there to add directory pathes searched for libraries.






Qt Creator




In order to add include paths you have to open up the .pro file and then add
the directories to the INCLUDEPATH variable. These paths are separated by spaces. Reference can be found here.



Showing INCLUDEPATH






If none of the above samples applies for your actually used IDE/toolchain, I hope you're able to get the point of abstraction:





It's an issue how to provide compiling/linking options to your actual toolchain. The IDE used to setup the context is a minor point here.



No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...