2

我的 cmake 项目在 linux 上遇到了一些链接器问题。

我已经安装了一个包(nvidias Cg 工具包),它将库文件放在 /usr/lib64

我在这里使用查找脚本:http ://code.google.com/p/nvidia-texture-tools/source/browse/branches/2.0/cmake/FindCg.cmake?r=452

如果我在运行 find 脚本后使用 message() 打印出 CG_LIBRARY 和 CG_GL_LIBRARY,它们都被设置为正确的文件和路径:/usr/lib64/libCg.so-lpthread /usr/lib64/libCgGL.so

查找脚本将 -lpthread 添加到 CG_LIBRARY。我还尝试删除添加它的行并将其手动添加到目标项目中。

然后我使用 target_link_libraries() 将这些变量添加到目标项目中。

当我运行 make 它说: /usr/bin/ld: cannot find -lCg /usr/bin/ld: cannot find -lCgGL collect2: error: ld returned 1 exit status

现在,如果我使用 VERBOSE=1 运行 make,我可以看到没有 -L/usr/lib64 条目。如果我编辑 CMakeFiles/MyProject.dir/link.txt 并手动添加条目,它会很好地链接它。cmake 不应该使用 target_link_libraries() 自动添加 -L 条目吗?我也尝试过使用 link_directories 手动添加 -L ,但这也无济于事..

4

0 回答 0