cmake:如何在Windows

时间:2016-05-21 02:57:31

标签: windows visual-c++ cmake

在GNU / Linux上,惯例是将库的名称(让我们称之为foo)传递给没有lib前缀的target_link_libraries(否则它会尝试链接liblibfoo.so)。在Windows上,当我要求与“foo”链接时,它会尝试查找不存在的“foo.lib”,因为该库名为libfoo.lib。有没有办法指示cmake添加lib前缀,而不依赖于另一个if(WIN32)块?

1 个答案:

答案 0 :(得分:1)

使用命令find_library搜索库的绝对路径。您可以使用NAMES选项指定搜索到的库的所有可能名称:

find_library(FOO_LIBRARY NAMES foo libfoo)

然后使用此命令的结果与库链接:

target_link_libraries(my_exec ${FOO_LIBRARY})