我已经能够编写一个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文件,以便可以在两个操作系统上进行构建。
有人对我如何设置它以便在两种环境中都能构建有想法吗?
答案 0 :(得分:0)
Visual Studio不需要或不希望您明确请求链接数学库。为Windows构建时,必须避免将其添加为链接库。您可以使用:
来代替无条件地进行target_link_libraries(MY_EXECUTABLE m)
,
IF (NOT WIN32)
target_link_libraries(MY_EXECUTABLE m)
ENDIF()