gpt4 book ai didi

macos - OS X 10.8 上的 CMAKE、Clang 和 C++v11

转载 作者:行者123 更新时间:2023-12-02 04:55:45 25 4
gpt4 key购买 nike

OS X 1.8

CMAKE 2.8.9

Clang $ clang -v
Apple clang 版本 4.0 (tags/Apple/clang-421.10.60)(基于 LLVM 3.1svn)
目标:x86_64-apple-darwin12.0.0
线程模型:posix

CMAKELists.txt:

cmake_minimum_required (VERSION 2.8.9)
project (Test)
add_executable(Test main.cpp)

main.cpp

//Create a C++11 thread from the main program
#include <iostream>
#include <thread>

//This function will be called from a thread
void call_from_thread() {
std::cout << "Hello, World!" << std::endl;
}

int main() {
//Launch a thread
std::thread t1(call_from_thread);

//Join the thread with the main thread
t1.join();

return 0;
}

我的错误:

$ make
Scanning dependencies of target Test
[100%] Building CXX object CMakeFiles/Test.dir/main.cpp.o
test/main.cpp:4:10: fatal error: 'thread' file not found
#include <thread>
^
1 error generated.
make[2]: *** [CMakeFiles/Test.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Test.dir/all] Error 2
make: *** [all] Error 2

那么Clang的版本不支持C++v11特性吗?同样的程序可以在 OSX 10.8 上的 gcc-4.7.1 下编译

此引用文献说它应该可以工作http://www.cpprocks.com/a-comparison-of-c11-language-support-in-vs2012-g-4-7-and-clang-3- 1/

我做错了什么?

最佳答案

您需要向编译器提供 -std=c++11-stdlib=libc++ 标志,才能完全激活其 C++11 支持。这可以通过 ccmake 来完成(打开高级模式(使用 t),并将 CMAKE_CXX_FLAGS 设置为 -std=c++11 -stdlib=libc++),或通过 CMakeLists.txt 中的等效指令:

cmake_minimum_required(VERSION 2.8.9)
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++")
project(Test)
add_executable(Test main.cpp)

关于macos - OS X 10.8 上的 CMAKE、Clang 和 C++v11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972603/

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