Cmake 链接到共享库找不到​​库

2024-05-04

在 Ubuntu 上,我有两个目录:build and src. In src, my CMakeLists.txt文件有以下几行:

add_executable(Test main.cpp)

target_link_libraries(Test libCamera.so)

在构建目录中运行 cmake 后(cmake ../src),然后我复制我的库文件libCamera.so进入构建目录。运行 make 后,main.cpp.o文件编译成功,但在链接过程中收到以下错误:

/usr/bin/ld: cannot find -lCamera

为什么是这样?共享库与我正在构建的目录位于同一目录中...如果我将库复制到,也会发生同样的事情/usr/bin...


你不应该添加前缀lib和后缀.so库的,所以只需使用:

target_link_libraries(Test Camera)

如果找不到您的库,您可能需要添加库所在的目录:

link_directories( /home/user/blah ) # for specific path
link_directories( ${CMAKE_CURRENT_BINARY_DIR} ) # if you put library where binary is generated

注意:您将 lib 复制到/usr/bin但与 Windows 中 dll 文件与可执行文件一起存储不同,在 Linux 中情况并非如此,所以它是/usr/lib, not /usr/bin。你也可以改变LD_LIBRARY_PATH变量使您的程序在自定义位置查找库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cmake 链接到共享库找不到​​库 的相关文章

随机推荐