g++ 是否遵循 C++14 ISo 标准、编译器标志——它们到底是什么意思?
Have g++ follow C++14 ISo standards, compiler flags - what do they actually mean?
我最近阅读了有关编译器和 gcc(对编程有点陌生)的信息,我尝试在我的代码中使用 auto,这给了我一个显示 "auto has different meaning in c++11" 的错误,所以我用谷歌搜索了一下,发现我需要 c ++11 或 c++14 支持,所以我在编译器设置中启用 "Have g++ follow c++14 ISO standards" 并且它开始工作,在编译器设置中有一堆更多的选项,我知道它们显然被称为 "flags" 现在,我对这些标志实际上是什么有点困惑,我的编译器是否已经支持 c++14?或者我是否仍然需要下载一个单独的编译器来使用 c++14,我正在使用代码块 17.2.It 如果有人可以提供链接以阅读更多关于标志实际是什么以及 g++/c++11/c++14 的处理以及我应该使用什么的链接,那将非常有帮助。
这些是我正在谈论的选项:-
这些标志用于决定在编译代码时使用哪个标准,反过来这意味着如果您使用的功能不在当前标准中而在较新的标准中,那么编译器会抱怨的。
这意味着 g++ 将使用以下参数进行编译以符合相应的标准。
g++ -std=c++11 foo.cpp -o foo
意味着 g++ 将使用 C++11 标准
编译foo.cpp
g++ -std=c++14 foo.cpp -o foo
意味着 g++ 将使用 C++14 标准
编译foo.cpp
不同的是,下面的代码在使用c++11参数时不会编译,但在c++14下会编译。
auto func()
{
return 2;
}
int main()
{
int a = func();
}
我最近阅读了有关编译器和 gcc(对编程有点陌生)的信息,我尝试在我的代码中使用 auto,这给了我一个显示 "auto has different meaning in c++11" 的错误,所以我用谷歌搜索了一下,发现我需要 c ++11 或 c++14 支持,所以我在编译器设置中启用 "Have g++ follow c++14 ISO standards" 并且它开始工作,在编译器设置中有一堆更多的选项,我知道它们显然被称为 "flags" 现在,我对这些标志实际上是什么有点困惑,我的编译器是否已经支持 c++14?或者我是否仍然需要下载一个单独的编译器来使用 c++14,我正在使用代码块 17.2.It 如果有人可以提供链接以阅读更多关于标志实际是什么以及 g++/c++11/c++14 的处理以及我应该使用什么的链接,那将非常有帮助。
这些是我正在谈论的选项:-
这些标志用于决定在编译代码时使用哪个标准,反过来这意味着如果您使用的功能不在当前标准中而在较新的标准中,那么编译器会抱怨的。
这意味着 g++ 将使用以下参数进行编译以符合相应的标准。
g++ -std=c++11 foo.cpp -o foo
意味着 g++ 将使用 C++11 标准
编译foo.cppg++ -std=c++14 foo.cpp -o foo
意味着 g++ 将使用 C++14 标准
编译foo.cpp不同的是,下面的代码在使用c++11参数时不会编译,但在c++14下会编译。
auto func()
{
return 2;
}
int main()
{
int a = func();
}