Próbuję skompilować źródła C i C++ razem przy użyciu GCC.Kompilowanie plików C i C++ razem przy użyciu GCC
gcc -std=c++0x test.cpp -std=c99 test.c -lstdc++
Teraz, to działa dobrze, poza tym, że mam dwa ostrzeżenia.
cc1plus: warning: command line option "-std=c99" is valid for C/ObjC but not for C++
cc1: warning: command line option "-std=c++0x" is valid for C++/ObjC++ but not for C
Z tego powodu nie mogę używać -Werror
w tej konfiguracji. Czy te ostrzeżenia mogą być w jakiś sposób stłumione?
To, co robisz, jest bardzo różne od tego, co robisz. Najpierw ustawiasz standard języka na C++ 0x, a następnie ustawiasz go na C99, co jest równoznaczne z użyciem C99 dla _obrobowych plików. Jednak kompilacja C++ w trybie C99 jest niemożliwa, więc dla pliku '.cpp' kompilator wróci do domyślnego, czyli C++ 98. Dlatego kompilujesz plik C w C99, a plik C++ w C++ 98. Podczas analizowania opcji GCC widzi, że masz niezgodne pliki dla każdej z opcji wersji językowej, a więc wyłącza ostrzeżenia dla każdej opcji. – Damon