【问题标题】:Linking math library in CMake file on windows and linux在 Windows 和 linux 上的 CMake 文件中链接数学库
【发布时间】:2019-07-22 22:49:19
【问题描述】:

我已经能够编写一个能够在 Linux 上构建我的 C 项目的 CMakeLists.txt 文件,但是,我在 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 文件以便我可以在两个操作系统上构建。

有没有人知道如何设置它以便能够在两种环境中构建?

【问题讨论】:

    标签: c windows visual-studio cmake


    【解决方案1】:

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

    ,而不是无条件地执行target_link_libraries(MY_EXECUTABLE m)
    IF (NOT WIN32)
      target_link_libraries(MY_EXECUTABLE m)
    ENDIF()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      相关资源
      最近更新 更多