gpt4 book ai didi

c++ - 使用 SDL 2.0 和 C++11 的 CMake

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:06 26 4
gpt4 key购买 nike

我在使用 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")

关于c++ - 使用 SDL 2.0 和 C++11 的 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19147854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com