我正在Windows 7上使用MSys2 / MinGW来构建旧项目。 MSys2仅使用最新版本的gcc,并且由于找不到重载的“ <<”运算符而无法使用gcc v9.1.0构建项目。
通过反复试验(和Cygwin),我发现gcc v6.4.0构建了项目,而v7.x却没有。
是否可以使用CCFLAGS或CXXFLAGS选项使gcc v9.1.0表现得好像是v6.4.0?
答案 0 :(得分:0)
似乎这不能用编译器标志解决,因此问题的答案为“否”。
解决方法::如果您无法修改源代码并且要在Windows下进行编译,则可以使用{@ {}中的MinGW Installer Utility下载特定版本的MinGW工具链。 3}}。这样,您可以选择要安装的GCC版本。
如果更改PATH变量以将新的MinGW安装目录放在第一位,您仍然可以使用MSys / MinGW Shell,方法是在.profile
中添加以下行:
export PATH=/c/mingw-w64/x86_64-6.4.0-win32/mingw64/bin:$PATH
答案 1 :(得分:0)
您可以使用-std=
编译器标志告诉GCC使用较旧的C / C ++标准,例如,使用g++
选项-std=c++11
使其符合ISO 2011 C ++标准
要获取所有可能的-std=
命令行标志的列表,请运行:
g++ --help -v 2>/dev/null|grep std=