gpt4 book ai didi

c++ - 链接到共享库的 Cmake 找不到库

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:25 24 4
gpt4 key购买 nike

在 Ubuntu 上,我有两个目录:buildsrc。在 src 中,我的 CMakeLists.txt 文件包含以下行:

add_executable(Test main.cpp)

target_link_libraries(Test libCamera.so)

在构建目录 (cmake ../src) 中运行 cmake 后,我将库文件 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,而不是 /usr/bin。您也可以更改 LD_LIBRARY_PATH 变量,让您的程序在自定义位置查找库。

关于c++ - 链接到共享库的 Cmake 找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com