【发布时间】:2017-05-22 00:40:08
【问题描述】:
我正在尝试使用 make 编译 c++ 文件。但是,默认情况下它不使用 -std=c++11 标志。每当我需要编译使用 c++11 特定功能的程序时,我必须使用 g++ 显式编译它。
所以,我想问一下如何让系统上的所有 c++ 文件自动使用选项 -std=c++11。
如果我需要为 g++ 更改一些全局 makefile,makefile 在 Linux Mint 18 上的位置是什么,需要更改或添加什么?
或者我需要为自己创建一个 Makefile 吗?
编辑 1: 我正在调用 make like
make myfile
并且目录中只有 .cpp 文件及其二进制文件。我的目录中没有任何 Makefile。
编辑 2:这里,myfile 是我要编译的 c++ 文件的名称。
当我使用 -d 选项运行 make 时,我得到以下输出(我无法粘贴所有输出,因为它很长并且超出了正文大小限制,所以我包括了输出的屏幕截图) .
Image 1
而这张图片(2)的末尾有几行。
Image 2
我故意对文件 "MagicalWord.cpp" 进行了更改,以便 make 找到要制作的东西!
【问题讨论】:
-
你是如何调用 make 命令的,你运行 make 的目录的内容是什么?
-
什么是我的文件?
-
如果您使用
-d选项运行make,它将在打印版本信息后打印Reading makefiles... Reading makefile 'Makefile'...之类的行。它说的是哪个文件? -
用相关信息更新问题@taskinoor
-
@ShubhamPrasad 您需要发布您的实际 Makefile,以便人们可以建议在哪里添加 -std=c++11 标志。没有适用于每个平台和 makefile 的通用地方,这完全取决于您如何编写特定 Makefile 的确切细节