C syntax check

C syntax check
Login

C syntax check

Use the C preprocessor cpp to syntax check code, without compiling nor linking.
Prprocessed C/C++ code is saved in an intermediate .i file, which can be syntax checked using the -fsyntax-only flag.

C

CFLAGS = -g -Wall -Wextra -Werror -ansi -pedantic
cpp $(CPPFLAGS) $(CFLAGS)   foo.c   -o foo.i   && gcc $(CFLAGS)   -fsyntax-only foo.i

C++

CXXFLAGS = -g -Wall -Wextra -Werror -std=c++98
cpp $(CPPFLAGS) $(CXXFLAGS) foo.cpp -o foo.ii  && gcc $(CXXFLAGS) -fsyntax-only foo.ii

Alternative way, use gcc with the -E flag:

C

    gcc -ansi -pedantic -E foo.c > foo.i && gcc -ansi -pedantic -fsyntax-only foo.i
    gcc -c -o foo.o   foo.i
    g++ -o foo   foo.o
    rm -f foo.i foo.o

C++

$ make
    g++ -std=c++98  -E foo.cpp > foo.ii && g++ -std=c++98 -fsyntax-only foo.ii
    g++ -c -o foo.o   foo.ii
    g++ -o foo   foo.o
    rm -f foo.ii foo.o

Makefile

Syntax check only:

make clean syntax

Syntax check and compile:

make clean all