将库导入我的 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++ 项目

C++ 如何将库添加到 minGW

myeclipse 8.5导入工程时出现no projects are found to import 如何解决呢?

在 Visual Studio 2012 中编译启用 CLR 的 C++ 项目时出现 C2248 错误

eclipse导入项目时出现