我知道C ++有标准而不是版本,因此,它们的发布由规范管理(例如C99,C ++ 11等)
C ++编译器具有版本,并且每个版本都可以支持多种c ++标准。
关于上述内容,我找到了我的g ++版本编译器,即7.2.0
? bgarcial [~] ? g++ --version
g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
? bgarcial [~] ?
Run Code Online (Sandbox Code Playgroud)
我的g ++编译器具有以下目录,我正在使用本机Makefile以C ++语言进行构建
? bgarcial [include/c++/7] ? pwd
/usr/include/c++/7
? bgarcial [include/c++/7] ?
Run Code Online (Sandbox Code Playgroud)
如何确定我的g ++编译器支持哪些C ++标准?
所述克++文档包括以下信息:
GCC支持1998年发布的原始ISO C ++标准以及2011和2014年的修订版。如果未提供C ++语言方言选项,则默认值为-std = gnu ++ 14。
它还包含以下有趣的内容:
默认情况下,GCC还提供了一些其他C ++语言扩展,这些扩展在极少数情况下与C ++标准冲突。请参阅控制C ++语言的选项。如果上面的-std选项与所选的C ++标准版本冲突,则禁用这些扩展。
您也可以使用-std = gnu ++ 98(对于具有GNU扩展的C ++ 98)或-std = gnu ++ 11(对于具有GNU扩展的C ++ 11)明确地选择C ++语言的扩展版本,或-std = gnu ++ 14(对于具有GNU扩展的C ++ 14)或-std = gnu ++ 1z(对于具有GNU扩展的C ++ 1z)。
在给定的C ++项目中,如何指定要使用的C ++标准/规范类型?
在CMakeLists.txt中可能是?要么 ...
作为标记建立一些基本文件?例如以下内容:
g++ client.cpp main.cpp -o client.out -lzmq -std=gnu++11
Run Code Online (Sandbox Code Playgroud)
推荐的C ++标准/规范是什么。
我之所以这样问,是因为我首先假设我使用的是带有GNU扩展的C ++ 14,与之前引用的g ++编译器文档有关。在某些情况下,我没有使用某些函数或库,但是我不知道这是由于使用的标准还是其他原因。
建议使用什么C ++标准?如何配置我的项目以使用它?
小智 5
您可以使用-std开关指定标准
$ g ++ -std = c ++ 11 your_file.cpp -o your_program
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |