首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在CMake 3.1中禁用对未定义的WIN32的警告?

如何在CMake 3.1中禁用对未定义的WIN32的警告?
EN

Stack Overflow用户
提问于 2015-02-23 13:01:56
回答 3查看 5.5K关注 0票数 3

我以前从未使用过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文件的前两行:

代码语言:javascript
运行
AI代码解释
复制
cmake_minimum_required(VERSION 3.1)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)

但我还是收到了警告。我该怎么摆脱它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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)

而且看起来很管用。

票数 5
EN

Stack Overflow用户

发布于 2015-12-28 23:06:20

set(CMAKE_LEGACY_CYGWIN_WIN32 0)移动到CMakeLists文件的顶部。为了在这种情况下正常工作,必须在cmake_minimum_required之前对其进行评估。

票数 1
EN

Stack Overflow用户

发布于 2017-09-12 07:43:58

我的cmake文件用于Cygwin和Linux。因此,对我来说,最简单的解决方案是编辑我的Cygwin .bashrc并添加行

export CMAKE_LEGACY_CYGWIN_WIN32=0

现在,我不必将Cygwin特定的语法留在跨平台的cmake文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28683365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档