Articles of makefile

Ajouter à GNU make variables via la ligne de commande

J’utilise un Makefile GNU-make pour construire un projet C avec plusieurs cibles ( all , clean et quelques cibles spécifiques au projet). Dans le processus de débogage, je voudrais append des drapeaux à une seule construction sans modifier de manière permanente le Makefile (par exemple, append des symboles de débogage ou définir un indicateur de […]

CMake: Comment définir le LDFLAGS dans CMakeLists.txt?

Je définis le CFLAGS dans CMake par CMAKE_C_FLAGS. Est-ce que quelque chose comme ceci définit LDFLAGS?

Comment générer un Makefile avec source dans les sous-répertoires en utilisant un seul fichier makefile

J’ai une source dans un tas de sous-répertoires comme: src/widgets/apple.cpp src/widgets/knob.cpp src/tests/blend.cpp src/ui/flash.cpp Dans la racine du projet, je veux générer un seul Makefile en utilisant une règle comme: %.o: %.cpp $(CC) -c $< build/test.exe: build/widgets/apple.o build/widgets/knob.o build/tests/blend.o src/ui/flash.o $(LD) build/widgets/apple.o …. build/ui/flash.o -o build/test.exe Lorsque j’essaie ceci, il ne trouve pas de règle pour […]

makefiles – comstack tous les fichiers c à la fois

Je veux expérimenter avec les optimisations de programme complet de GCC. Pour ce faire, je dois transmettre tous les fichiers C en même temps à l’interface du compilateur. Cependant, j’utilise makefiles pour automatiser mon processus de compilation, et je ne suis pas un expert en matière de magie de makefile. Comment dois-je modifier le fichier […]

GNU peut-il gérer les noms de fichiers avec des espaces?

J’ai un répertoire contenant plusieurs fichiers, dont certains ont des espaces dans leurs noms: Test workspace/ Another directory/ file1.ext file2.ext demo 2012-03-23.odp J’utilise la commande $(wildcard) GNU sur ce répertoire, puis je répète le résultat en utilisant $(foreach) , en imprimant tout. Voici le code: FOO := $(wildcard *) $(info FOO = $(FOO)) $(foreach PLACE,$(FOO),$(info […]

Changer le répertoire de travail pour les scripts npm

Q: Est-il possible de changer le contexte dans lequel npm exécute les scripts? Ce que je veux est le suivant: “scripts”: { “test”: “gulp mocha”, “pre-install”: “./deps/2.7/cpython/configure –prefix=$(pwd)/build –exec-prefix=$(pwd)/build && make -C deps/2.7/cpython && make -C deps/2.7/cpython install”, “install”: “node-gyp rebuild” }, De toute évidence, cd deps/2.7/cpython/ && ./configure fonctionnerait sur les systèmes UNIX, mais […]

Définition automatique de l’indicateur jobs (-j) pour une machine multicœur?

J’ai un Makefile sur une machine qui contient une tonne de cœurs, mais je semble toujours oublier d’écrire -jX lors de la compilation de mon projet et cela prend beaucoup plus de temps que -jX . Est-il possible de définir l’ -j via une variable d’environnement ou un autre fichier de configuration persistant afin que […]

Comment utiliser LDFLAGS dans makefile

Je suis nouveau sur Linux. J’essaie de comstackr un fichier .c en utilisant un fichier makefile. La bibliothèque de mathématiques doit être liée. Mon makefile ressemble à ceci: CC=gcc CFLAGS=-Wall -lm all:client .PHONY: clean clean: rm *~ *.o client Quand je lance make , j’obtiens l’erreur suivante: “undefined reference to rint” Il n’est donc pas […]

Sous-répertoires et Makefiles

Je pense que c’est une question qui a été posée à plusieurs resockets mais je ne peux pas trouver la bonne façon de le faire. J’ai la structure suivante: project/ project/Makefile project/code project/code/*.cc project/code/Makefile Lorsque je suis dans le répertoire “project / code” et que j’appelle “make project_code”, mon code est correctement compilé. Je voudrais […]

Quelle est la manière préférée de structurer et de construire des projets OCaml?

Pour les nouveaux venus dans l’écosystème, il n’est pas clair quelle est la manière canoniquement préférée de structurer et de gérer la construction de projets OCaml de taille petite à moyenne. Je comprends les bases d’ ocamlc , etc. – elles reflètent suffisamment les compilateurs UNIX C classiques pour sembler simples. Mais, au-delà du niveau […]