Peut CMake utiliser g++ pour compiler du C fichiers?

J'ai travaillé sur un projet où j'ai été en utilisant g++ pour compiler du code C dans les fichiers qui se terminent dans .c. La raison en est que je me suis dit que g++ a de meilleurs messages d'avertissement.

Je suis de commutation le processus de construction de ce projet à utiliser CMake. J'ai constaté que dans un premier CMake voulais utiliser gcc pour compiler du C fichiers. Cela n'a pas pu à cause de choses comme la déclaration de variables lors de l'utilisation du temps. J'ai donc essayé d'utiliser g++ pour compiler du C fichiers à l'aide du paramètre

set(CMAKE_C_COMPILER_INIT g++)

dans le CMakeLists.txt fichier. Mais cela entraîne le message d'erreur:

#error "The CMAKE_C_COMPILER is set to a C++ compiler"

J'ai été de renommer mon .c fichiers .rpc pour résoudre ce problème, comme cela semble être le moyen le plus facile pour moi de faire fonctionner les choses, et peut-être la meilleure façon trop. Mais je me demandais si il est possible de forcer CMake à utiliser g++ pour compiler du C fichiers.

"La raison en est que je me suis dit que g++ a de meilleurs messages d'avertissement." - Et pourriez-vous le confirmer? Je dirais que c'est très discutable, car, autant que je sache), les deux sont juste des pilotes en invoquant le même compilateur avec des arguments différents (langue, comprennent des chemins, de la bibliothèque standard, linked in, etc.) En dehors de cela, g++ n'est pas un compilateur C de sorte que vous finissez par écrire des très pauvres C++.
Si vous êtes à la rédaction de C, puis compiler avec un compilateur C. C et C++ ne sont pas la même chose.
Vous avez dit " le Présent échoué à cause de choses comme la déclaration de variables lors de l'utilisation du temps'; cela sonne comme vous utilisez GCC en C89 mode, au lieu de C99 mode. Essayez d'ajouter -std=c99 pour le compilateur C - en quelque sorte.
merci pour les commentaires je vais être sûr de penser à ces suggestions.

OriginalL'auteur Gabriel Southern | 2011-10-07