Je souhaite inclure différents répertoires dans ma construction en fonction de la déclaration d'une #define dans un fichier .h de mon projet. Est-ce possible ou est-ce que je vais complètement à tort?Est-il possible de tester si une définition C est déclarée dans un Makefile gnu?
Répondre
Oui, vous l'êtes. Le système de construction est censé configurer le code, et non l'inverse. Vous devriez utiliser un script configure pour ce genre d'options (ou passer probablement à un système de compilation supérieur: autotools, CMake, QMake ...).
C'est possible, mais vous vous y trompez. La façon d'inclure différents répertoires est avec des cibles différentes. Si votre code doit les connaître, utilisez -D
dans vos options de compilation. Alternativement, si votre build doit être capable de fonctionner sur les systèmes d'autres personnes, quelque chose comme autoconf est la voie à suivre.
Les autres réponses ont expliqué pourquoi c'est une mauvaise idée. Quoi qu'il en soit, d'une façon de le faire est par prétraiter un fragment makefile:
En foo.mk.in
:
#ifdef FOO
FOO_DEFINED := y
#else
FOO_DEFINED := n
#endif
En Makefile
:
foo.mk: foo.mk.in
$(CPP) $(CPPFLAGS) -o [email protected] $<
include foo.mk
ifeq ($(FOO_DEFINED),y)
$(warning FOO is defined)
else
$(warning FOO is not defined)
endif
- 1. Question GNU MakeFile
- 2. Savoir si une propriété est déclarée virtuelle
- 3. Est-il possible de "désactiver" une variable d'environnement dans un Makefile?
- 4. test si une propriété est déclarée dans la classe
- 5. Pouvons-nous inclure un autre Makefile dans un Makefile GNU en utilisant le chemin relatif?
- 6. Chemin d'accès commun du répertoire makefile GNU
- 7. Comment vérifier si un fichier existe dans un fichier makefile
- 8. Comment tester si une primitive en Objective-C est nulle?
- 9. Comment vérifier si une classe Delphi est déclarée abstraite?
- 10. Comment savoir si une variable dans ASP a été déclarée
- 11. Tester si une classe est polymorphe
- 12. C# API pour tester si une carte réseau est firewalled
- 13. Vérification Php si une classe statique est déclarée
- 14. Tester si une session Facebook est valide?
- 15. ActionScript 2: Est-il possible de tester si la souris est enfoncée sans configurer un événement?
- 16. C# valeur est déclarée mais jamais utilisé
- 17. Tester si javascript est activé
- 18. Comment tester si une méthode de service fluide est appelée
- 19. Comment tester si un arbre BSP donné est optimal?
- 20. Comment supprimer un -D pour un seul fichier dans un makefile gnu?
- 21. Définition de _LIBC dans le programme C++
- 22. Y at-il un moyen de savoir si une variable a été déclarée en C?
- 23. Est-il possible de tester un modèle qui agit_as_tree
- 24. Échange atomique dans GNU C++
- 25. C# vérifie si un répertoire est caché?
- 26. Une règle cible vide est-elle un substitut viable pour .DEFAULT_GOAL dans GNU Make?
- 27. est-ce possible en C++?
- 28. Existe-t-il un équivalent pour __if_exists dans gnu C++?
- 29. Comment tester si une chaîne existe dans un flux Genshi?
- 30. Comment savoir si la variable est déclarée en Python?
Bon travail. Il suffit de le faire. –