1
我在Windows 7 64位下的cygwin控制台上使用cmake。但cmake变量CYGWIN(https://cmake.org/cmake/help/v3.3/variable/CYGWIN.html)未定义。我错过了什么吗?CMAKE没有定义CYGWIN变量
例如,这里是我的CMakeLists.txt:
message("CYGWIN: ${CYGWIN}")
message("CMAKE SYSTEM: ${CMAKE_SYSTEM_NAME}")
project (foo CXX)
我劳克在cygwin控制台,并做到:
cmake path/to/my/CMakeLists.txt
选定的输出:
> CYGWIN:
> CMAKE SYSTEM:
> -- The CXX compiler identification is GNU 4.9.2
>
> (a warning about the WIN32 variable not being defined by cmake anymore)
>
> -- Check for working CXX compiler: /usr/bin/x86_64-w64-mingw32-g++.exe
> -- Check for working CXX compiler: /usr/bin/x86_64-w64-mingw32-g++.exe -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Check for working C compiler: /usr/bin/x86_64-w64-mingw32-gcc.exe
> -- Check for working C compiler: /usr/bin/x86_64-w64-mingw32-gcc.exe -- works
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /foo/directory
配置:
- uname CYGWIN_NT-6.1
- cmake版本3.3.2(CMake套件由Kitware(kitware.com/cmake)维护和支持。
如果移动这些* *后的'项目()'命令,会发生什么? CMake将其大部分内部东西设置为'project()'的一部分。 – Angew
如果我在project()命令后移动它们,它可以工作,谢谢!但是对我来说已经太迟了,因为我想在调用project()之前指定CYGWIN的编译器。 – Drude
通常,指定编译器应该是运行CMake(用户或脚本)的人的工作,而不是项目的工作。 CMake应该从已经配置好的环境中运行。 – Angew