gpt4 book ai didi

c++ - 在 G++ 编译命令中包含 -std=c++0x 有什么意义?

转载 作者:太空狗 更新时间:2023-10-29 23:24:39 24 4
gpt4 key购买 nike

我最近开始学习 C++,因为我在 Linux 上,所以我正在使用 G++ 进行编译。

现在,我正在学习的教程说

If you happen to have a Linux or Mac environment with development features, you should be able to compile any of the examples directly from a terminal just by including C++11 flags in the command for the compiler:

并告诉我使用此命令进行编译:g++ -std=c++0x MY_CODE.cpp -o MY_APP

现在,我想知道的是,std=c++0x 标志的意义何在?它是必需的,还是我可以运行 g++ MY_CODE.cpp -o MY_APP

最佳答案

默认情况下,GCC 为 gnu++98 编译 C++ 代码,这是 C++98 标准加上大量 gnu 扩展的奇特说法。

您使用 -std=??? 告诉编译器它应该遵循什么标准。
不要省略 -pedantic,否则它会斜视标准一致性。

您可以选择的选项:

standard          with gnu extensions

c++98 gnu++98
c++03 gnu++03
c++11 (c++0x) gnu++11 (gnu++0x)
c++14 (c++1y) gnu++14 (gnu++1y)

即将到来:

c++1z             gnu++1z (Planned for release sometime in 2017, might even make it.)

GCC 手册:https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Standards.html#Standards

此外,要求完整警告,因此添加 -Wall -Wextra

making the library include additional checks 有预处理器定义:

  • _GLIBCXX_CONCEPT_CHECKS为某些模板先决条件添加额外的编译时检查。请注意,这些检查实际上并不总是执行它们应该执行的操作,因此已被弃用。
  • _GLIBCXX_DEBUG .启用库 Debug模式。这具有相当大的运行时开销。
  • _GLIBCXX_DEBUG_PEDANTIC 同上,但检查标准要求而不是仅检查实现。

关于c++ - 在 G++ 编译命令中包含 -std=c++0x 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com