So geben Sie einen alternativen Linker -Befehl an, wenn Sie mit "CC" verlinkenC++

Programme in C++. Entwicklerforum
Anonymous
 So geben Sie einen alternativen Linker -Befehl an, wenn Sie mit "CC" verlinken

Post by Anonymous »

Wenn Sie CC (1) verwenden, um ein Programm zu verknüpfen, wird ein Standard -Linker -Befehl aufgenommen. Zum Beispiel wurde Ihre Version des Compilers möglicherweise für die Verwendung /usr/bin/ld auf einer unix-ähnlichen Plattform erstellt. /usr/bin/ld )? Ich interessiere mich hauptsächlich für GCC und Clang.

Code: Select all

env LD=/usr/local/bin/ld cc foo.c -o foo
< /code>
Aber das funktioniert nicht für GCC oder Clang.  Es würde natürlich funktionieren, wenn Sie eine Makefile hätten, die zuerst eine Objektdatei erstellt und dann $ {ld} zum Verknüpfen aufgerufen wurde (z. B. env ld =/usr/local/bin/ld make 
). Zum Beispiel wäre es schön, dies zu tun: < /p>

Code: Select all

cc --linker=/usr/local/bin/ld foo.c -o foo
Stattdessen müssen Sie die Objektdatei generieren, CC -v ausführen, um die Argumente auf LD herauszufinden, und die gewünschten Ld mit diesen Argumenten ausführen:
">"> ">">

Code: Select all

cc -c foo.c
cc -v foo.c -o /dev/null
Schauen Sie sich nun den Linker -Aufruf an und kopieren Sie manuell das Austausch von Linker und temporärer Objektdatei. So etwas wie dieses (Beispiel aus einem Test auf Fedora 23), bei dem Sie /usr/libexec/gcc/x86_64-redhat-linux/5.3.1/Collect2 mit/usr/local/bin/ld ersetzen (obwohl es nicht genau gleich das gleiche wie scolle2 :

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post