链接没有标准名称/扩展名的库

Linking a library that not have a standarized name/extension

本文关键字:扩展名 标准 链接      更新时间:2023-10-16

如果在cmake中使用命令target_link_libraries,链接到链接器时,将搜索符合某些标准的库。对于稳定:

使用以下命令:

target_link_libraries(some_target  some_lib)

在Linux中链接器将搜索: libsome_lib.so 时,在Windows中,链接器将搜索 some_lib.lib.lib.lib (在Windows中,我正在编译VS项目生成的VS项目来自CMAKE项目)。

由于我的应用程序的部署要求,库没有扩展名,并且必须在两个OS中称为相同(例如some_lib)。

我该如何告诉cmake搜索此类库?

我想进入完整的路径会做到这一点,但是,还有其他方法可以做到这一点吗?

编辑:指定图书馆的完整路径不起作用。

我从未测试过,但是cmake wiki文档将这些变量引用到指定库扩展:

CMAKE_FIND_LIBRARY_SUFFIXES 
CMAKE_IMPORT_LIBRARY_SUFFIX  

特定于Windows。似乎是只读的。使用SET_TARGET_PROPERTIES

CMAKE_LINK_LIBRARY_SUFFIX     

特定于Windows的。

CMAKE_SHARED_LIBRARY_SUFFIX  

似乎是只读的。使用SET_TARGET_PROPERTIES

CMAKE_STATIC_LIBRARY_SUFFIX   

似乎是只读的。使用SET_TARGET_PROPERTIES