Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何满足我的G+编译器中C++标准版本? P>我知道C++有标准而不是版本,因此,它们的发布是由C99、C++ 11等规范管理的,在其他的之间 C++编译器有版本,每个版本都支持多个C++标准…是这样吗_C++_Gcc_Cmake_G++ - Fatal编程技术网

如何满足我的G+编译器中C++标准版本? P>我知道C++有标准而不是版本,因此,它们的发布是由C99、C++ 11等规范管理的,在其他的之间 C++编译器有版本,每个版本都支持多个C++标准…是这样吗

如何满足我的G+编译器中C++标准版本? P>我知道C++有标准而不是版本,因此,它们的发布是由C99、C++ 11等规范管理的,在其他的之间 C++编译器有版本,每个版本都支持多个C++标准…是这样吗,c++,gcc,cmake,g++,C++,Gcc,Cmake,G++,关于上述内容,我找到了我的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 MERCHANT

关于上述内容,我找到了我的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 [~] → 

我有以下的G+编译器目录,我使用的是本地的MaxFrm文件,用C++语言构建

λ bgarcial [include/c++/7] → pwd
/usr/include/c++/7

λ bgarcial [include/c++/7] →
如何判断我的G+编译器支持哪些C++标准? 包括以下信息:

< GCC支持1998版的ISO C++标准和2011和2014修订版。如果没有C++语言选项,则默认为-STD= GNU++ 14。 它还包含以下有趣的内容:

默认情况下,GCC还提供了一些额外的扩展到C++语言,很少与C++标准发生冲突。查看控制C++方言的选项。使用上面列出的-STD选项,这些扩展与它们选择的C++标准版本冲突。 < C++ > C++ C++语言,还可以选择一个扩展的C++语言版本,其中C++ +GN+GNU + 98,GNU扩展,或者-STD= GNU+++ 11,用C++扩展GNU扩展,或者-STD= GNU+14,用C++加14 GNU扩展,或者-STD= GNU+1Z,用C++ +1Z加GNU扩展。

在给定的C++项目中,如何指定C++标准/规范类型使用什么? 在CMakeLists.txt中可能是?或者

作为建立一些基本文件的标志?例如:

g++ client.cpp main.cpp -o client.out -lzmq -std=gnu++11

推荐的C++标准/规范是什么?< /P> 我这样问是因为在第一个实例中,我假设我使用的是C++14和GNU扩展,与前面提到的g++编译器文档相关。 在某些情况下,我没有使用某些函数或库,但我不知道这是由于使用的标准还是其他原因


使用的C++标准是什么?如何配置我的项目使用它?< /P> < P>您可以用-STD交换机

指定标准。
$g++-std=c++11 your_file.cpp-o your_程序

您可以使用-std开关指定标准


$g++-std=c++11 your_file.cpp-o your_program

CMake提供了一种以编译器不可知的方式指定标准的方法。谢谢我一直在学习如何。。。决定项目使用哪个版本将取决于您打算使用的平台和编译器。这个问题与主题无关。如果不是因为它是基于意见的,那么它就太宽泛了。有太多的事情要考虑。在boost成为标准之前,您可以从中获得很多东西,但是使用标准的东西当然更好。此外,不同的标准支持稍有不同的样式,最显著的是auto、lambdas等,在c++11之前甚至不存在,因此您可以使用最适合自己的样式。总是使用最新的标准也可以是一个有效的策略…这不是C++或编译器问题;这是一个CMake问题。CMake提供了一种以编译器不可知的方式指定标准的方法。谢谢我一直在学习如何。。。决定项目使用哪个版本将取决于您打算使用的平台和编译器。这个问题与主题无关。如果不是因为它是基于意见的,那么它就太宽泛了。有太多的事情要考虑。在boost成为标准之前,您可以从中获得很多东西,但是使用标准的东西当然更好。此外,不同的标准支持稍有不同的样式,最显著的是auto、lambdas等,在c++11之前甚至不存在,因此您可以使用最适合自己的样式。总是使用最新的标准也可以是一个有效的策略…这不是C++或编译器问题;这是一个很好的问题。嗨,我怎样才能永远做到这一点?不需要添加-std标志吗?嗨,我怎么能永久地这样做?不需要添加-std标志?