Visual Studio中的c ++编译器标志
Posted
技术标签:
【中文标题】Visual Studio中的c ++编译器标志【英文标题】:c++ compiler flags in visual studio 【发布时间】:2017-12-08 15:14:53 【问题描述】:我正在参加关于数据结构和算法的 MOOC 课程。我想使用 c++,我需要将我的编译器选项设置为以下
g++ -pipe -O2 -std=c++14 -lm
我目前在 Windows 上使用 MS Visual Studio 2017。甚至可能吗?我需要进行自定义构建吗?以下是从 MOOC 中提到的关于 Windows 用户必须使用 Cygwin 的段落,但我不知道这意味着什么。任何人都可以阐明一种可行的方法吗?
您的解决方案将编译如下。我们建议当 在本地测试您的解决方案,您使用相同的编译器标志 编译。这将增加您的程序在 在您的机器和测试机器上以相同的方式(请注意, 错误的程序在由不同的编译器编译时可能会有不同的行为 编译器,甚至由具有不同标志的同一编译器)。
C++ (g++ 5.2.1)。文件扩展名:.cc、.cpp。标志
g++ -pipe -O2 -std=c++14 -lm
如果您的 C/C++ 编译器无法识别“-std=c++14”标志,请尝试 用“-std=c++11”或“-std=c++0x”标志替换它或编译 完全没有这个标志(所有的入门解决方案都可以编译 没有它)。在 Linux 和 MacOS 上,您可能拥有所需的 编译器。在 Windows 上,您可以使用自己喜欢的编译器或安装 cygwin等环境。
【问题讨论】:
gcc 的那些标志,你不能将它们与 msvc 一起使用。g++
不是 Visual Studio 编译器。您将不得不单独获取它。 Cygwin是windows上安装g++的方式之一。
既然它说“在 Windows 上,你可以使用你最喜欢的编译器”,你可以声明 msvc 是你最喜欢的编译器,但预计会被指责说谎或品味糟糕。
您需要阅读 g++ 编译器选项,然后阅读 Visual Studio 编译器选项并尝试找到等效选项。也就是说,如果他们将从源代码构建并在不同的平台和编译器上运行/测试您的代码,那么您确实需要在提交之前以相同的方式构建它,以确保您没有任何会导致问题的平台特定代码。
@nwp 请不要在不同平台之间产生无意义的仇恨。
【参考方案1】:
正如他们所说,您应该选择 cygwin (https://cygwin.com/install.html)。
这些将是 msvc 的标志:/std:c++14 /O2 /Im
您可以在其属性页中为每个项目设置编译器选项 对话框。在左侧窗格中,选择配置属性、C/C++ 然后选择编译器选项类别。 对于类别查找:https://docs.microsoft.com/de-de/cpp/build/reference/compiler-options-listed-by-category
【讨论】:
以上是关于Visual Studio中的c ++编译器标志的主要内容,如果未能解决你的问题,请参考以下文章
C : Visual Studio 和 Eclipse+MinGW 中的预编译头文件
Visual Studio C++ 编译器标志:-Zm200 是啥?