与 CMakeLists 链接:ld 找不到库

Kar*_*rus 6 c++ ubuntu makefile cmake

我有一个CMakeLists.txt文件,内容如下:

target_link_libraries(${PROJECT_NAME} OpenNI2)
Run Code Online (Sandbox Code Playgroud)

当我运行时cmake,我没有收到任何错误。但是当我运行时make,我收到以下错误:

/usr/bin/ld: cannot find -lOpenNI2
Run Code Online (Sandbox Code Playgroud)

但是,libOpenNI2.so我的构建目录中有一个名为的文件。那么为什么ld找不到这个呢?我认为构建目录在target_link_libraries?

谢谢!

Som*_*ude 4

这是因为链接时,链接器不会在当前目录中查找,而只会在一组预定义的目录中查找。

您需要告诉 CMake库的位置,例如通过在target_link_library命令中提供库的完整路径,或将其添加为导入的库