我知道编译器尚未完全支持 C++20,但我真的很想学习模块和其他 C++20 内容。GCC11 和 Clang-8+ 支持模块。 C++20 的编译器支持
我已经在 Ubuntu 上安装了 Clang-10,但它仍然出现错误:
import <iostream>;
using namespace std;
int main(){
cout << "Hello world";
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
命令:
clang++ -Wall -std=c++2a -stdlib=libc++ -fimplicit-modules -fimplicit-module-maps main.cpp -o main
clang++ -Wall -std=c++20 -stdlib=libc++ -fimplicit-modules -fimplicit-module-maps main.cpp -o main
错误:致命错误:找不到“iostream”文件
默认情况下,gcc trunk使用c++17,而clang trunk使用c++14,所以你必须说编译器,你想使用c++20
如果您自己在终端中编译代码,请添加以下标志
--std=c++20
Run Code Online (Sandbox Code Playgroud)
如果您使用 Cmake 编译代码,请将以下内容添加到 CMakeLists.txt
set(CMAKE_CXX_STANDARD 20)
Run Code Online (Sandbox Code Playgroud)
如果您在某些 IDE(Codeblocks 或 Visual studio)中进行编译,则在编译器设置中的某个位置放置支持 c++20
trunk的意思是“开发主线”,所以这个编译器版本应该是官方支持的最新版本