Comment puis-je définir les #define dans mes fichiers
Dans mon c/c++ fichiers, il y a de multiples #define. À titre d'exemple:
#ifdef LIBVNCSERVER_HAVE_LIBZ
/* some code */
#ifdef LIBVNCSERVER_HAVE_LIBJPEG
/* some more code */
Pouvez-vous s'il vous plaît dites-moi comment puis-je modifier mon Makefile.en sorte que j'ai ces #define dans TOUS fichiers lors de la compilation?
Merci.
envisager de modifier la configuration.ac ou Makefile.suis à la place. Makefile.dans n'est pas destiné à la consommation humaine.
configurer.ca aura besoin pour définir les valeurs quelque part dans le Makefile.dans. Makefile.est destiné en partie à la consommation humaine - sauf si vous utilisez Automake ou quelque chose d'autre à générer un Makefile.dans.
configurer.ca aura besoin pour définir les valeurs quelque part dans le Makefile.dans. Makefile.est destiné en partie à la consommation humaine - sauf si vous utilisez Automake ou quelque chose d'autre à générer un Makefile.dans.
OriginalL'auteur n179911 | 2010-01-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez passer ceux
CPPFLAGS
,ou faire de nouveaux variable
et de le passer à
CPPFLAGS = -DEXISTINGFLAGS $(CUSTOMDEFINES)
Ceux-ci sont enfin passer à
gcc/g++ -D...
CPPFLAGS
Vous avez raison, j'ai négligé les balises comme C, C++, édité
dang, vous frappez le clou sur la tête....C'était ce que j'essayais de comprendre....ma réponse était proche, mais pas assez près 🙂
rpc se réfère à préprocesseur C, CXX préfixe est pour le C++
Ce faisant complètement à côté du point de l'utilisation de la autotools. Le script de configuration doit déterminer si ou de ne pas définir ces variables, pas l'utilisateur.
OriginalL'auteur YOU
Ajouter la ligne ci-dessous, à votre makefile:
C'est pour servir d'exemple, de n'ajouter un autre à définir pour le
DEFINES
variable qui obtient référencé sur la ligne comme indiqué$(cc) -D$(DEFINES)
dans lequel la marque se développe automatiquement la variable et de la compilation de ceux qui sont#ifdef
d.Grâce à R Samuel Klatchko pour souligner un petit mal...c'est spécifiquement pour GNU make, vous pouvez utiliser addprefix faire correctement le faire ($(addprefix -D, $(DÉFINIT))).
-DLIBVNCSERVER_HAVE_LIBZ LIBVNCSERVER_HAVE_LIBJPEG
). Si vous avez GNU make, vous pouvez utiliser addprefix faire correctement le faire ($(addprefix -D, $(DEFINES))
).Samuel Klatchko: Édité la réponse à refléter votre commentaire! Bravo pour le heads up! 🙂
Normalement, $(CC) $ou $ {CC} ont le CC en majuscules, pas de bas-de-casse.
OriginalL'auteur t0mm13b
Ne pas modifier votre Makefile.dans. (et pensez à utiliser Automake et la conversion de votre fichier Makefile.dans une beaucoup plus simple Makefile.suis). Le point de l'ensemble de ces #définit, c'est de laisser le script configure les définir dans la configuration.h, et votre source des fichiers devraient #include <config.h>. Si vous êtes à la maintenance du paquet, vous aurez besoin d'écrire des tests à configurer.ac pour déterminer si oui ou non le système utilisé a libvncserver installé avec le jpeg et zlib soutien. Si vous modifier le Makefile.à toujours définir eux, alors, vous faites l'hypothèse que votre code est en cours de construction sur les machines où ces fonctions sont disponibles. Si vous faites cette hypothèse, vous devez toujours ajouter des contrôles à configurer.ca, pour le confirmer, et ont le script configure échouer si les dépendances ne sont pas satisfaites.
OriginalL'auteur William Pursell