Dans des Makefile on trouve des règles pour des fichiers CXX CPP CC mais quel est réellement la différence entre ces fichiers et les règles de compilation ...
CXX_FLAGS=
CPP_FLAGS=
CFLAGS=
...
Merci d'avance pour vos précisions
Dans des Makefile on trouve des règles pour des fichiers CXX CPP CC mais quel est réellement la différence entre ces fichiers et les règles de compilation ...
CXX_FLAGS=
CPP_FLAGS=
CFLAGS=
...
Merci d'avance pour vos précisions
Salut,
A vrai dire, à l'heure actuelle, il n'y a plus de différence entre CXX_FLAGS et CPP_FLAGS.
CFLAGS permet d'indiquer les drapeaux à utiliser lors de la compilation d'un code C et les deux autres les drapeaux à utiliser lors de la compilation d'un code C++.
En effet, gcc est capable de compiler aussi bien du code C que du code C++.
Il faut savoir que, à l'origine, il existait trois moyens d'indiquer à gcc que l'on voulait travailler sur du code C++, et tous passaient par l'extension des fichiers.
Les trois extensions reconnues comme étant sensées contenir du C++ étaient *.cpp, *.cxx et *.C (en majuscule).
Seulement, c'était valide sur les systèmes d'exploitation sensibles à la casse (aux différences entre minuscule et majuscule) dans le nom des fichiers.
L'ennui, c'est que windows est arrivé, et que, pour lui, monfichier.C est exactement le même fichier que MonFichier.c ou que MONFICHIER.C, alors qu'avant, ils auraient été considérés comme étant trois fichiers différents (sur Unix, principalement).
L'extension .C a donc été abandonnée pour cette raison d'insensibilité à la casse, et l'extension *.cxx est progressivement tombée en désuetude.
Voilà pourquoi, maintenant, l'habitude est plutôt d'utiliser l'extension *.cpp, et donc d'avoir principalement besoin de CPP_FLAGS.
Comme gcc pourrait, n'importe quand, considérer de gérer les extensions .cxx de manière différente, mais, que, pour l'instant, il les gère encore comme étant des fichiers contenant du C++, on s'assure que les deux extensions utiliseront les même drapeaux en déclarant généralement l'un comme étant égal à l'autre![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Normalement c'est CFLAGS, CPPFLAGS et CXXFLAGS.
Il n'y a pas de _.
CFLAGS ce sont les options passées au compilateur C
CPPFLAGS les options passées au préprocesseur
CXXFLAGS les options passées au compilateur C++
Ces variables sont utilisées pour les commandes par défaut générées par make, dans le cas où tu ne donnes pas de commande à exécuter pour réaliser les dépendances.
Partager