我正在为我公司的(其他人)现有项目添加扩展。现在我想导入一个现有的库,比如 boost 。我正在使用 netbeans 来调试现有项目。现在,为了将库导入 netbeans,通常需要执行 2 个步骤:
- 包括目录
- 链接器-> 添加库。
但是,当我右键单击现有项目时,没有出现 Linker->Add Library 选项。(虽然我已经包含了目录,因为该选项在那里)。
有人可以指导我如何通过链接器将库添加到我现有的项目中吗?我的项目是 C++
假设您使用的是 unix/linux 变体:
头文件和库链接的目录是两个不同的东西。包含目录将具有所需的标头,但在编译后,可能还需要驻留在库(*.a、*.so 等)中的实际编译代码。
例如,如果您使用 pthreads,除了需要包含的标头之外,您还需要 libpthread。
链接时,您需要提供与 pthread 链接的标志,即: -lpthread 您可以在 unix 系统上使用 find 或 locate 进行搜索以查找库。就我而言,它在
/usr/lib/libpthread.so
所以,
gcc myfile.c -lpthread -o myfile
将 myfile.c 与 pthread 库链接
然而,
gcc -L/usr/local/lib/
告诉 gcc 在 /usr/local/lib 下查找库(不是标题!)。
告诉 netbeans 标题在哪里是不够的,它可能会给你链接错误。告诉 netbeans 库在哪里可能就足够了,因为它可能使用正确的标志。如果这也失败了,那么您必须同时指定库标志和路径。
或者,您可以使用 cmake、make 等工具来自动化此过程并提供更多控制 IMO。