将库导入到我的c + +项目的问题,如何解决这个问题?
我正在使用<XZY>
IDE来编译我的程序,并且在导入/集成特定的库时遇到了一些麻烦。
我收到类似的错误消息
fatal error: 3rdPartyLib.h: No such file or directory
为一个
#include "3rdPartyLib.h"
声明
ld.exe: cannot find `lib3rdParty.a`
用于指定
3rdParty
在额外的图书馆
至less我得到了一些类似的错误信息
undefined reference to `lib3rdParty::foo()'
我能做些什么来解决这个问题?
这是一个常见的误解,即使用当前的IDE,负责得到问题中所述的错误。
看例如
- 在两个相同的项目中的c + + lib,一个可以工作,但另一个不能
- 使用CodeBlocks IDE for C ++ Windows链接libxml ++和glib库
- …
问题几乎从来没有涉及到目前使用的IDE。
在大多数情况下,解决scheme归结起来,为实际工具链的编译器/链接器提供适当的path以search包含的头文件,以便成为链接库。
链接器相关问题的主要适用答案之一是
- 什么是未定义的引用/无法parsing的外部符号错误,我该如何解决?
- 未定义引用'WinMain @ 16'
大多数常见的IDE提供了为特定项目configuration的function。 这里有一些样品
Eclipse的CDT
包含path设置:
库和库searchpath设置
Visual Studio 2013
代码块
** DEV C ++(Bloodshed C ++)
从他们的FAQ:
9.我怎样才能使用OpenGL库和其他?
所有的Mingw库都驻留在Lib目录下。 它们都按以下方式命名:
lib*.a
要将库链接到项目,只需添加项目选项,其他选项文件:
-lopengl32
这是为了包含libopengl32.a
库。 要添加任何其他库,只需遵循相同的语法:键入-l
(L小写)加上库的基本名称(文件名无lib
和.a
扩展名)。
您也可以考虑在那里添加一个-L
选项来添加search库的目录path。
Qt Creator
为了添加包含path,您必须打开.pro文件,然后将目录添加到INCLUDEPATH
variables。 这些path由空格分隔。 参考可以在这里find。
如果上面的样例都不适用于您实际使用的IDE /工具链,那么我希望您能够获得抽象的点:
如何为您的实际工具链提供编译/链接选项是一个问题。 IDE用于设置上下文在这里是一个小问题。
对于eclipse,我尽可能使用pkg-config
插件:
https://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
没有这个configuration窗口: