在GNU / Linux上,惯例是将库的名称(让我们称之为foo)传递给没有lib前缀的target_link_libraries(否则它会尝试链接liblibfoo.so)。在Windows上,当我要求与“foo”链接时,它会尝试查找不存在的“foo.lib”,因为该库名为libfoo.lib。有没有办法指示cmake添加lib前缀,而不依赖于另一个if(WIN32)块?
答案 0 :(得分:1)
使用命令find_library搜索库的绝对路径。您可以使用NAMES
选项指定搜索到的库的所有可能名称:
find_library(FOO_LIBRARY NAMES foo libfoo)
然后使用此命令的结果与库链接:
target_link_libraries(my_exec ${FOO_LIBRARY})