将库导入我的 c++ 项目时出现问题,如何解决?
Posted
技术标签:
【中文标题】将库导入我的 c++ 项目时出现问题,如何解决?【英文标题】:Problems importing libraries to my c++ project, how to fix this? 【发布时间】:2014-07-12 18:06:21 【问题描述】:我正在使用<XZY>
IDE 编译我的程序,但在导入/集成特定库时遇到了一些麻烦。
我收到类似的错误消息
fatal error: 3rdPartyLib.h: No such file or directory
为了一个
#include "3rdPartyLib.h"
声明
ld.exe: cannot find `lib3rdParty.a`
用于指定
3rdParty
在其他库中
至少我收到了一些错误消息,例如
undefined reference to `lib3rdParty::foo()'
我能做些什么来解决这个问题?
【问题讨论】:
【参考方案1】:这是一个常见的误解,即当前使用的 IDE 会导致出现问题中所述的错误。 见例子
c++ lib in two same project ,one can work but the other can 't Issue linking libxml++ and glib libraries with CodeBlocks IDE for C++ Windows ...该问题几乎与当前使用的 IDE 无关。 在大多数情况下,解决方案归结为,为实际工具链的编译器/链接器提供适当的路径以搜索包含的头文件,以链接库。
链接器相关问题的主要适用答案之一是
What is an undefined reference/unresolved external symbol error and how do I fix it? undefined reference to `WinMain@16'
大多数常见的 IDE 都提供了针对特定项目进行配置的功能。以下是一些示例
Eclipse-CDT
包括路径设置:
图书馆和图书馆搜索路径设置
Visual Studio 2013
代码块
**DEV C++(流血C++)
从他们的常见问题解答中:
9.如何使用 OpenGL 库和其他库?
Mingw 附带的所有库都位于 Lib 目录中。它们都以以下方式命名:
lib*.a
要将库与您的项目链接,只需添加项目选项,更多选项文件:-lopengl32
这是为了包含libopengl32.a
库。要添加任何其他库,只需遵循相同的语法: 键入-l
(小写 L)加上库的基本名称(不带lib
和.a
扩展名的文件名)。
您也可以考虑在其中放置一个-L
选项来添加搜索库的目录路径。
Qt 创建者
要添加包含路径,您必须打开 .pro 文件,然后添加
INCLUDEPATH
变量的目录。这些路径由空格分隔。可以参考here。
如果上述示例都不适用于您实际使用的 IDE/工具链,我希望您能够理解抽象点:
如何为您的实际工具链提供编译/链接选项是一个问题。用于设置上下文的 IDE 在这里是一个小问题。
【讨论】:
【参考方案2】:对于 eclipse,我尽可能使用pkg-config
插件:
https://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
这个配置窗口失败了:
【讨论】:
以上是关于将库导入我的 c++ 项目时出现问题,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
用MyEclipse导入JSP项目包时出现这样的红叉,怎么解决
如何使用自制软件、cMake 和 cLion 将库添加到 C++ 项目
myeclipse 8.5导入工程时出现no projects are found to import 如何解决呢?