在Windows和Linux上使用CMake文件链接数学库

4
我已经能够编写一个CMakeLists.txt文件来在Linux上构建我的C项目,但是,在Windows上构建项目时遇到了很多问题。 cmake调用成功,并生成Visual Studio 2017项目文件,但是构建失败,提示:Error LNK1104 cannot open file 'm.lib'。 在CMakeLists.txt文件中,我使用target_link_libraries(MY_EXECUTABLE m)来尝试链接数学库,在Linux上可以工作,但在Windows上会出现上述错误。 经过一些研究,我发现在Windows上,math是由mscvr库处理的,而不是像Linux上的libm,但我不确定如何配置CMake文件以便在两个操作系统上构建。请问有没有人知道我如何设置才能在两种环境下进行构建?
1个回答

2
Visual Studio不需要也不希望您明确请求链接数学库。在Windows上构建时,您必须避免将其添加为链接库。因此,您可以使用以下方法而不是无条件地执行target_link_libraries(MY_EXECUTABLE m)
IF (NOT WIN32)
  target_link_libraries(MY_EXECUTABLE m)
ENDIF()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接