我正在为我公司的(另一个人)现有项目添加扩展。现在我想导入一个像boost这样的现有库。我正在使用netbeans来调试现有项目。现在,为了将库导入netbeans,通常会执行两个步骤:
但是,当我右键单击我现有的项目时,Linker-> Add Library选项不会出现。 (虽然我已将目录包含在那个选项中)。
有人可以指导我如何通过链接器将库添加到现有项目中?我的项目是用C ++编写的
答案 0 :(得分:1)
假设您正在使用unix / linux变体:
标题和库链接的目录是两个不同的东西。包含目录将需要标题,但在编译之后,可能还需要驻留在库中的实际编译代码(* .a,* .so等...)。
例如,如果您使用的是pthread,除了需要包含的标题之外,还需要libpthread。
链接时,需要提供与pthread链接的标志,即:-lpthread 您可以使用find或locate在unix系统上进行搜索以查找库。在我的情况下,它在
/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。