注意:这是我第一次使用CMake.我不太了解它,所以我只是发布一堆信息,看看是否有人能看到我的问题.
在我的编译器中,我希望能够自动确定哪个c ++ 11标志是合适的.这条线有很多例子.以下是我的CMakeLists.txt以下示例:
cmake_minimum_required (VERSION 2.8)
#Add the c++11 flag, whatever it is
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG(-std=c++11 COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG(-std=c++0x COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
project(AnalyzeGames)
set(AnalyzeGames_SRCS AnalyzeGames.cpp)
add_executable(AnalyzeGames ${AnalyzeGames_SRCS})
Run Code Online (Sandbox Code Playgroud)
尝试使用此文件时,这是我的cmake输出:http://pastebin.com/3AUwqffD
这是CMakeError.log:http://pastebin.com/EbNKvGt8
这是CMakeOutput.log:http://pastebin.com/kVJ0enJC
echo $CC:/ usr/bin/gcc
echo $CXX:/ usr/bin/g ++
我可以手动使用任一标志用g ++编译一个简单的测试可执行文件.
cmake --version:cmake版本2.8.12.2
出于某种原因,CMake没有意识到我的编译器确实支持这两个标志.
小智 7
cmake输出告诉您它不能识别'.cxx'扩展名,因为它不知道您的项目是C++项目.要解决此问题,您应该在项目命令中启用C++ .尝试更改以下行:
project(AnalyzeGames)
Run Code Online (Sandbox Code Playgroud)
至:
project(AnalyzeGames CXX)
Run Code Online (Sandbox Code Playgroud)
然后将其移动到CMakeLists.txt的第二行,正下方cmake_minimum_required.在此之后配置应该按预期工作.
| 归档时间: |
|
| 查看次数: |
5688 次 |
| 最近记录: |