使用 SDL 2.0 和 C++11 的 CMake
CMake with SDL 2.0 and C++11
我在使用 CMake 编译 C++11/SDL 2.0 代码时遇到了一些问题。CMakeLists非常简单:
cmake_minimum_required(VERSION 2.6)
project(Test)
include(FindPkgConfig)
pkg_search_module(SDL2 REQUIRED sdl2)
include_directories(${SDL2_INCLUDE_DIRS})
target_link_libraries(sdl2test ${SDL2_LIBRARIES})
add_definitions(-std=c++0x)
add_executable(Test src/main.cpp)
但是,在编译时,我收到此错误:
Scanning dependencies of target Test
[100%] Building CXX object CMakeFiles/Test.dir/src/main.cpp.o
/var/dev/cmake/src/main.cpp: In function ‘int main(int, char**)’:
/var/dev/cmake/src/main.cpp:11:16: error: ‘nullptr’ was not declared in this scope
/var/dev/cmake/src/main.cpp:17:16: error: ‘nullptr’ was not declared in this scope
make[2]: *** [CMakeFiles/Test.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Test.dir/all] Error 2
make: *** [all] Error 2
CMAKE 版本 2.8.9 和 GCC 4.7.2。关于如何正确使用 CMake C++11 功能的任何想法?
ps:我也试过-std=c++11
add_definitions
实际上是用于设置预处理器定义。您需要在此处设置CMAKE_CXX_FLAGS
:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何获得CMake Tools以在Visual Studio Code中编译具有C++11(或更高版本)功能的程序?
- Linux Mint 19 上的 CMake 3.11 无法找到静态的 Boost 库
- 生成生成 makefile 时不包括 cmake C++11 标志
- CMAKE错误:C 11不支持Mac High Sierra
- Cmake没有使用C++11标志使用CXX_STANDARD
- 如何在 CMake 目标上请求 C++11 或更高版本
- C++11 cmake O3 选项<没有用于初始化 'std::thread' 的匹配构造函数>
- 将C++11程序链接到CMake中的Qt5会导致错误
- C++11 CMake:正则表达式失败
- 如何在 Cmake 中定义传递CXX_STANDARD C++11
- SDL2和CMake在OS X 10.11上运行
- 如何使用 CMake 检测编译器的 C++11 支持
- 使用 SDL 2.0 和 C++11 的 CMake
- 在 Windows 上使用 CMake 2.8.11 构建自定义 Qt 4.8.3 库时出错
- Cmake文件以支持c++ 11
- 通过cmake在VS 2013中启用c++ 11支持
- 如何在c++11和c++98的共享库创建中使用cmake 2.8.2进行单次构建时每次重新编译源文件