ton*_*ark 2 makefile g++ c++11
我正在尝试使用 make 编译 C++ 文件。但是,默认情况下它不使用 -std=c++11 标志。每当我需要编译使用 c++11 特定功能的程序时,我必须使用 g++ 显式编译它。
所以,我想问一下如何让系统上的所有 c++ 文件自动使用选项 -std=c++11 。
如果我需要为 g++ 更改一些全局生成文件,Linux Mint 18 上生成文件的位置是什么,需要更改或添加什么?
或者我需要为自己创建一个 Makefile 吗?
编辑 1:我调用 make like
make myfileRun Code Online (Sandbox Code Playgroud)
并且目录中只有 .cpp 文件及其二进制文件。我在目录中没有任何 Makefile。
编辑 2:这里myfile是我要编译的 C++ 文件的名称。
当我使用 -d 选项运行 make 时,我得到以下输出(我无法粘贴所有输出,因为它很长并且超出了主体尺寸限制,因此,我包含了输出的屏幕截图)。
Image 1
而这个 image(2) 从末尾开始有一些线条。
图 2
我故意对文件进行了更改,"MagicalWord.cpp"以便 make 找到要制作的东西!
没有“全局 makefile”,也没有办法更改所有 make 调用的默认标志(除非您将源代码编辑为 GNU make 并自己编译,在这种情况下这是一个坏主意)。
在您的 makefile(s) 中,添加以下行:
CXXFLAGS += -std=c++11
Run Code Online (Sandbox Code Playgroud)
假设您使用内置规则进行编译,或者您使用标准变量和您自己的规则,这将满足您的需求。
如果这不起作用,我们将需要查看您的 makefile 或至少您用于构建 C++ 源文件的规则(诸如-d输出之类的东西在这里没有用——如果没有构建文件,那将会很有趣,您认为应该是或类似的)。
| 归档时间: |
|
| 查看次数: |
10072 次 |
| 最近记录: |