在Windows和Linux上的CMake文件中链接数学库

时间:2019-02-28 22:55:10

标签: c windows visual-studio cmake

我已经能够编写一个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上的mscvr库处理的,而不是Linux上的libm处理的,但是我不确定如何配置CMake文件,以便可以在两个操作系统上进行构建。

有人对我如何设置它以便在两种环境中都能构建有想法吗?

1 个答案:

答案 0 :(得分:0)

Visual Studio不需要或不希望您明确请求链接数学库。为Windows构建时,必须避免将其添加为链接库。您可以使用:

来代替无条件地进行target_link_libraries(MY_EXECUTABLE m)
IF (NOT WIN32)
  target_link_libraries(MY_EXECUTABLE m)
ENDIF()