linux - `Cmake` 在调用 `target_link_libraries(target_name, library_name_without_postfix)` 时更喜欢链接到哪个库?

标签 linux ubuntu cmake build linker

特定库的静态版本和共享版本都在同一个文件夹中,那么 Cmake 是哪个库调用时更喜欢链接到 target_link_libraries(target_name, library_name_without_postfix) ?
为什么?

最佳答案

如果 target_link_libraries 在第二个参数中采用库名称,则它完全取决于链接器。在您的情况下,链接行将被翻译为

-llibrary_name_without_postfix.
在这种情况下,它将在标准路径(如 LD_LIBRARY_PATH、/etc/ld.so.conf)或系统路径中进行搜索。
由于您没有说明该位置,我假设该库位于当前的构建目录中。你在某处有一个命令,包括链接器路径中的当前构建目录,使用 link_directories .在这种情况下,默认链接是动态的。

关于linux - `Cmake` 在调用 `target_link_libraries(target_name, library_name_without_postfix)` 时更喜欢链接到哪个库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67958558/

相关文章:

c++ - 使用 cmake 配置代码覆盖率

c - 如何修改CMakeList.txt : library found, 但是有链接错误

linux - mongodb &/data/db目录权限

linux - 如何查找和取消链接绑定(bind)的套接字

linux - 在远程服务器上复制文件和目录,同时排除其中的一些

node.js - 部署到 Digital Ocean 的 Meteor 应用程序卡在 100% CPU 和 OOM

cmake - 使用星号更改多个源文件的 CMake 编译器标志

linux - ret_from_syscall源码及调用时间

ruby-on-rails - 错误 : Failed to build gem native extension

ubuntu - 在 ubuntu 上使用 ffmpeg 裁剪视频中的黑条会改变视频大小