gpt4 book ai didi

cmake - 将 target_link_libraries 用于不是以 lib* 开头的库

转载 作者:行者123 更新时间:2023-12-05 05:13:16 46 4
gpt4 key购买 nike

我正在尝试将我的程序 (hello) 与不以“lib”开头的特殊库 (/path/abc.so) 链接。

这是我的 CMakeLists.txt

add_executables(hello hello.c)

target_link_libraries(hello /path/abc.so)

它工作正常,但是有没有其他方法可以避免这个完整路径(/path/abc.so)的事情?我不想创建 abc.so 的符号链接(symbolic link)或修改 abc.so 本身。

最佳答案

最好的选择可能不是直接链接库,而是使用导入的目标:您可以将您的图书馆目标设为

add_library(ABC SHARED IMPORTED)
set_target_properties(ABC PROPERTIES
IMPORTED_LOCATION path/to/library/abc.so
INTERFACE_INCLUDE_DIRECTORIES path/to/include
)

然后您可以将其链接为目标:

target_link_libraries(hello ABC)

下一步是创建库查找模块或配置模块,因此您无需在 CMakeLists.txt 中定义完整路径,而是搜索库,或者只包含一个包含所有内容的 .cmake 文件路径。

看看HEREHERE

关于cmake - 将 target_link_libraries 用于不是以 lib* 开头的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754221/

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