MAKE的GCC标志从哪里传递?

时间:2014-05-07 07:47:57

标签: c++ gcc makefile

我正在本地处理现有项目。我是该项目的新手,所以我按原样使用提供的make文件。我修改了一些代码,运行make,然后传递了构建。

当我将更改推送到github时,自动Travis CI构建检测到编译错误。

在StackOverflow上搜索错误告诉我,在C ++ 11之前它是一个错误,但C ++ 11及更高版本不会出错。

这意味着我的本地make必须使用C ++ 11标志进行编译,而服务器上的Travis CI构建正在编译而没有标记。

理想情况下,我希望我的本地构建条件与服务器构建条件相匹配,以便在推送之前检测到任何错误。

在哪里可以看到为我的本地make操作传递给GCC的标志,还是有其他方法可以显式禁用C ++ 11编译标志?

1 个答案:

答案 0 :(得分:1)

假设您有一些all目标,用于构建主要内容:

all: (some dependencies)
    (some commands)

为了确保在构建时使用哪些标志,您可以添加一些虚拟依赖项:

all: (some dependencies) showflags
    (some commands)

showflags:
    @echo "CXXFLAGS=$(CXXFLAGS)"
    @echo "CPPFLAGS=$(CPPFLAGS)"

至少你可以看到使用了哪些选项。