如何使用gcc工具检查C++头文件是否正确?

lkn*_*dhu 7 c++ gcc header

如何使用gcc工具检查头文件的语法是否正确?

Cir*_*四事件 16

-fsyntax-only

完全符合你的要求:

echo 'int i;' > good.hpp
echo 'int i' > bad.hpp
g++ -fsyntax-only good.hpp
echo $?
# 0
g++ -fsyntax-only bad.hpp
# bad.hpp:1:5: error: expected initializer at end of input
# int i
#     ^
echo $?
# 1
g++ --version | head -n1
g++ (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1
Run Code Online (Sandbox Code Playgroud)

man g++ 说:

-fsyntax-only
    Check the code for syntax errors, but don't do anything beyond that.
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个答案应该标记为正确,因为它解释了问题的确切解决方案,而不仅仅是解决方法. (3认同)

NPE*_*NPE 7

您可以尝试使用它编译它g++,如g++ -c myheader.h.这将捕获任何语法错误.

  • `g++ -fsyntax-only -Wall -Wextra -Wno-deprecated -std=c++11 myheader.h` (2认同)