我在Mac Lion上使用http://hpc.sourceforge.net的gcc 4.8.1。我正在尝试编译一个使用<string>
中的to_string
函数的C++程序。我每次都需要使用标志-std=c++11
:
g++ -std=c++11 -o testcode1 code1.cpp
有没有办法在默认情况下包含这个标志?
发布于 2014-01-13 06:05:57
如前所述-在项目、Makefile
或其他情况下,这是一个项目配置问题,您可能还需要指定其他标志。
但是,如果是一次性程序,通常只需要编写g++ file.cpp && ./a.out
就可以了
嗯,我非常希望有一些#pragma
可以在源代码级别打开,或者可能是一个默认的扩展-比如.cxx
或.C11
或其他什么,默认情况下触发它。但到今天为止,还没有这样的功能。
但是,由于您可能是在手动环境(即shell)中工作,所以您可以在.bashrc
(或其他任何环境)中使用别名:
alias g++11="g++ -std=c++0x"
或者,对于较新的G++ (当您想要感受“真正的C++11”时)
alias g++11="g++ -std=c++11"
如果您如此讨厌C++03,您甚至可以使用g++
本身的别名;)
发布于 2015-12-31 01:11:50
我认为您可以使用specs文件来完成此操作。
在MinGW下,你可以运行
gcc -dumpspecs >规格
上面写着
*cpp:
%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT}
您可以将其更改为
*cpp:
%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT} -std=c++11
然后把它放在
/mingw/lib/gcc/mingw32//specs
我确信您可以在没有MinGW构建的情况下完成同样的工作。但是不确定将specs文件放在哪里。
文件夹可能是/gcc/lib/或/gcc/。
发布于 2020-02-08 01:07:11
如果您正在使用sublime,那么如果您将其作为构建系统的代码添加到build中,则此代码可能会起作用。您可以使用this link了解更多信息。
{
"shell_cmd": "g++ \"${file}\" -std=c++1y -o \"${file_path}/${file_base_name}\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ \"${file}\" -std=c++1y -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
}
]
}
https://stackoverflow.com/questions/16886591
复制相似问题