相同标志

时间:2016-01-15 13:58:05

标签: c++ build

我们有一个复杂的构建系统,可以在windows和linux上使用。在Windows上,编译器已经为非void函数提供了错误,没有return语句。如果有一个没有返回语句的非void函数,我们想让构建器在Linux上引发错误。为了做到这一点,我们添加了" -Werror = return-type"到项目标志,这意味着这个标志将适用于所有项目和组件。然后一些第三方组件因此而引发错误。我们希望从第三方组件中排除该标志并添加" -wno-error = return-type"到第三方组件的组件标志,这意味着该标志仅适用于相关组件。

现在问题是第三方组件有-Werror = return-type和-Wno-error = return-type标志。这些都是冲突的,并且仍然会针对非void函数引发错误而没有return语句。有没有其他方法可以做到这一点。我该如何处理这种重叠情况?

感谢您提前!

1 个答案:

答案 0 :(得分:0)

我找到了答案。有人试图找出Werror和Wno-error如何工作可能会有用。

最后给定的标志具有优先权。我的意思是如果你按顺序给出这些选项,比如$ somecommand -Werror = something -Wno-error =编译器获取最新的标志,并且不会引发错误。 在我的情况下由组件标志的顺序引起的错误。我重新调整了顺序并在组件标志之前写了-Werror并解决了。