在调用 `target_link_libraries(target_name, library_name_without_postfix)` 时,`Cmake` 比 link 更喜欢哪个库?
Which library does `Cmake` prefer to link to when invoking `target_link_libraries(target_name, library_name_without_postfix)`?
特定库的静态版本和共享版本都在同一个文件夹中,那么在调用 target_link_libraries(target_name, library_name_without_postfix)
时 Cmake
比 link 更喜欢哪个库?
为什么?
如果target_link_libraries在第2个参数中取库名,那完全取决于linker。在您的情况下,link 行将被翻译成
-llibrary_name_without_postfix.
在这种情况下,它将在标准路径中搜索,如LD_LIBRARY_PATH、/etc/ld。so.conf或在系统路径中。
由于您没有说明位置,我假设该库位于当前构建目录中。并且您在某处有一个命令,包括使用 link_directories
的 linker 路径中的当前构建目录。在这种情况下,默认 link 是动态的。
特定库的静态版本和共享版本都在同一个文件夹中,那么在调用 target_link_libraries(target_name, library_name_without_postfix)
时 Cmake
比 link 更喜欢哪个库?
为什么?
如果target_link_libraries在第2个参数中取库名,那完全取决于linker。在您的情况下,link 行将被翻译成
-llibrary_name_without_postfix.
在这种情况下,它将在标准路径中搜索,如LD_LIBRARY_PATH、/etc/ld。so.conf或在系统路径中。
由于您没有说明位置,我假设该库位于当前构建目录中。并且您在某处有一个命令,包括使用 link_directories
的 linker 路径中的当前构建目录。在这种情况下,默认 link 是动态的。