Lassen Sie GNU einen anderen Compiler verwenden

Lesezeit: 2 Minuten

Wie kann ich GNU Make dazu bringen, einen anderen Compiler zu verwenden, ohne das Makefile manuell zu bearbeiten?

Sie sollten in der Lage sein, Folgendes zu tun:

make CC=my_compiler

Dies setzt voraus, dass derjenige, der das Makefile geschrieben hat, die Variable CC verwendet hat.

  • Häufig verwendete Variablen sind CC, GCC, CCXetc… aber wie gesagt, man muss die lesen Makefile um zu sehen, welche Variable(n) verwendet werden (und auch, ob es sich um C++ oder C handelt). Ich bin gerade auf diese Antwort gestoßen, als ich ein Makefile verwendet habe, das überprüft, ob Sie es verwenden GCC (z.B, make GCC=gcc-6) und druckt eine Fehlermeldung, in der Sie aufgefordert werden, stattdessen zu verwenden HOST_COMPILER (z.B, make HOST_COMPILER=g++-6 vs meine Vorgabe von g++ die neuere v7) (zu Ihrer Information, es sind die Nvidia CUDA-Beispiele).

    – michael

    19. September 2018 um 2:52 Uhr


  • Dies ist eine schreckliche Antwort, sie deckt nicht ab, was in “meinem Compiler” stehen soll

    – Das negative

    30. Juli 2019 um 15:20 Uhr

Sie können die Umgebungsvariablen festlegen CC und CXX, die zum Kompilieren von C- bzw. C++-Dateien verwendet werden. Standardmäßig verwenden sie die Werte cc und g++

  • Wenn das Makefile geschrieben wurde, um CC und CCX zu verwenden

    anon

    3. Juni 2010 um 19:50 Uhr

  • Die Einstellung der Umgebung überschreibt keine expliziten Werte in einem Makefile, es sei denn, Sie verwenden ‘-e’, um make anzuweisen, dies zuzulassen. Es überschreibt jedoch die Standardeinstellungen – und höchstwahrscheinlich werden die Standardeinstellungen verwendet.

    – Jonathan Leffler

    3. Juni 2010 um 19:52 Uhr

Wenn das Makefile wie die meisten Makefiles geschrieben ist, dann verwendet es $(CC) wenn es den C-Compiler aufrufen möchte. Das machen sowieso die eingebauten Regeln. Wenn Sie für diese Variable einen anderen Wert angeben, verwendet Make stattdessen diesen. Sie können einen neuen Wert in der Befehlszeile angeben:

make CC=/usr/bin/special-cc

Sie können dies auch beim Ausführen angeben configure:

./configure CC=/usr/bin/special-cc

Das Konfigurationsskript wird die neue einbinden CC value in das Makefile, das es generiert, so dass Sie es nicht brauchen manuell Bearbeiten Sie es, und Sie können einfach laufen make von selbst danach (anstatt den Brauch zu geben CC Wert jedes Mal auf der Befehlszeile).

Benutzeravatar von ladenedge
beladenekante

Viele Makefiles verwenden ‘CC’, um den Compiler zu definieren. Wenn das bei Ihnen der Fall ist, können Sie diese Variable überschreiben mit

make CC='/usr/bin/gcc'

Verwenden Sie Variablen für den Namen des Compilerprogramms.
Übergeben Sie die neue Definition entweder an die make verwenden oder sie vor dem Bau in die Umgebung stellen.

Sehen Verwenden von Variablen in Make

Makefile:

#!MAKE

suf=$(suffix $(src))
ifeq ($(suf), .c)
cc=gcc
else
ifeq ($(suf), .cpp)
cc=g++
endif
endif

all:
    $(cc) $(src) -o $(src:$(suf)=.exe)

clean:
    rm *.exe

.PHONY: all clean

Terminal:

$ make src=main.c

1413070cookie-checkLassen Sie GNU einen anderen Compiler verwenden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy