我正在本地处理现有项目。我是该项目的新手,所以我按原样使用提供的make
文件。我修改了一些代码,运行make
,然后传递了构建。
当我将更改推送到github时,自动Travis CI构建检测到编译错误。
在StackOverflow上搜索错误告诉我,在C ++ 11之前它是一个错误,但C ++ 11及更高版本不会出错。
这意味着我的本地make
必须使用C ++ 11标志进行编译,而服务器上的Travis CI构建正在编译而没有标记。
理想情况下,我希望我的本地构建条件与服务器构建条件相匹配,以便在推送之前检测到任何错误。
在哪里可以看到为我的本地make
操作传递给GCC的标志,还是有其他方法可以显式禁用C ++ 11编译标志?
答案 0 :(得分:1)
假设您有一些all
目标,用于构建主要内容:
all: (some dependencies)
(some commands)
为了确保在构建时使用哪些标志,您可以添加一些虚拟依赖项:
all: (some dependencies) showflags
(some commands)
showflags:
@echo "CXXFLAGS=$(CXXFLAGS)"
@echo "CPPFLAGS=$(CPPFLAGS)"
至少你可以看到使用了哪些选项。