Как проверить правильность заголовочного файла C ++ с помощью инструментов gcc? - PullRequest
6 голосов
/ 29 марта 2011

Как проверить правильность синтаксиса заголовочного файла с помощью инструментов gcc?

Ответы [ 4 ]

15 голосов

-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

man g++ говорит:

-fsyntax-only
    Check the code for syntax errors, but don't do anything beyond that.
7 голосов
/ 29 марта 2011

Вы можете попробовать скомпилировать его с g++, как в g++ -c myheader.h. Это перехватит любые синтаксические ошибки.

4 голосов
/ 29 марта 2011

создайте файл cpp, который включает, но включает заголовок и скомпилирует его;)

0 голосов
/ 29 марта 2011

Я обычно гарантирую, что каждый заголовок включен в исходный файл. Если, например, библиотека, которую я разрабатываю, предназначена только для заголовков, я специально пишу базовый модульный тест специально для включения любых автономных заголовков и проверки создания любых шаблонов в этом заголовке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...