我以前从未使用过CMake,但是我正在尝试一个不支持任何其他构建系统的IDE (CLion),所以我尝试一下。在每次构建开始时,我都会收到以下警告:
/cygdrive/c/Users/admin/.clion10/system/cygwin_cmake/share/cmake-3.1.2/Modules/Platform/CYGWIN.cmake:15的CMake警告(消息):CMake不再在Cygwin上定义WIN32! (1)如果您只是试图构建此项目,请忽略此警告或通过在您的环境中或在CMAKE_LEGACY_CYGWIN_WIN32=0缓存中设置CMake来使其安静下来。如果以后发生配置或构建错误,那么这个项目可能是在假设Cygwin是WIN32的情况下编写的。在这种情况下,设置CMAKE_LEGACY_CYGWIN_WIN32=1。 (2)如果您正在开发此项目,请添加以下行 当需要CMAKE_LEGACY_CYGWIN_WIN32 CMake >= 2.8.4时设置(CMake 0) # Remove 在顶级CMakeLists.txt文件的顶部,或者将CMake的最低要求版本设置为2.8.4或更高版本。然后教你的项目在没有WIN32的Cygwin基础上构建
我已经尝试过这两种解决方案。下面是我的CMakeLists.txt文件的前两行:
cmake_minimum_required(VERSION 3.1)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
但我还是收到了警告。我该怎么摆脱它?
发布于 2016-03-01 23:26:09
根据Nils的说法(他在吗?)在CMake邮件列表中:
发出警告的代码由"project()“运行。由于在顶级CMakeLists.txt中没有显式的项目()调用,所以CMake隐式地将一个项目添加到顶层。1 在需要CMake >= 2.8.4之后显式调用project()的项目文件应该消除警告:
cmake_minimum_required(VERSION 2.8.8)
project(Foo)
而且看起来很管用。
发布于 2015-12-28 23:06:20
将set(CMAKE_LEGACY_CYGWIN_WIN32 0)
移动到CMakeLists文件的顶部。为了在这种情况下正常工作,必须在cmake_minimum_required
之前对其进行评估。
发布于 2017-09-12 07:43:58
我的cmake文件用于Cygwin和Linux。因此,对我来说,最简单的解决方案是编辑我的Cygwin .bashrc并添加行
export CMAKE_LEGACY_CYGWIN_WIN32=0
现在,我不必将Cygwin特定的语法留在跨平台的cmake文件中。
https://stackoverflow.com/questions/28683365
复制