Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
835 views
in Technique[技术] by (71.8m points)

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

I'm using the <XZY> 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?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...