c++: error: unrecognized command line option ‘-std=c++17’
时间: 2023-12-20 20:03:21 浏览: 199
这个错误通常是由于使用了不支持C++17标准的旧版编译器造成的。
要解决这个问题,你可以尝试以下几种方法:
1. 升级你的编译器版本,确保它支持C++17标准。你可以在终端中运行以下命令,查看你的编译器版本:
```
g++ --version
```
如果你的编译器版本较旧,那么你可以尝试升级它或者安装一个新的版本。
2. 如果你不能升级编译器版本,那么你可以尝试使用较旧的C++标准,例如C++11或C++14。你可以使用以下命令来编译你的程序:
```
g++ -std=c++11 your_program.cpp -o your_program
```
或者
```
g++ -std=c++14 your_program.cpp -o your_program
```
3. 如果你确定你的编译器版本支持C++17标准,但你仍然收到该错误消息,那么你可能需要检查你的编译器选项是否正确。确保你没有在选项中使用任何不支持的参数。
希望这些方法能够帮助你解决问题!
相关问题
--> g++ -march=native -O3 -Wpedantic -Wall -Wextra -Wsign-conversion -Wconversion -std=c++20 -Isrc -IuSockets/src -flto examples/Http3Server.cpp uSockets/*.o -lz -o Http3Server g++: error: unrecognized command line option ‘-std=c++20’; did you mean ‘-st
d=c++17’?
这个错误是因为你的 g++ 版本不支持 C++20 标准。你可以尝试使用更高版本的 g++ 或者使用 C++17 标准。
如果你使用的是较旧版本的 g++,你可以尝试通过以下命令安装更高版本的 g++:
```
sudo apt-get update
sudo apt-get install g++-9
```
然后,你可以使用以下命令将代码编译成 C++17 标准:
```
g++-9 -march=native -O3 -Wpedantic -Wall -Wextra -Wsign-conversion -Wconversion -std=c++17 -Isrc -IuSockets/src -flto examples/Http3Server.cpp uSockets/*.o -lz -o Http3Server
```
请注意,以上命令中的版本号可能需要根据你的系统和安装的 g++ 版本进行更改。
g++: error: unrecognized command line option ‘-mfloat-abi=soft’
这个错误通常是因为您使用的编译器不支持指定的浮点运算规范。-mfloat-abi=soft选项通常用于指定使用软件实现的浮点运算规范,而不是使用硬件浮点单元。您可以尝试使用支持指定浮点运算规范的编译器,或者使用默认的浮点运算规范,不指定-mfloat-abi选项。如果您在交叉编译ARM架构的程序,您需要确保您的编译器和工具链支持指定的浮点运算规范。