Ich versuche, gemeinsam genutzte Bibliothek auf solaris 2.7 mit gcc 3.4.6 und zu kompilieren, die zu einer statisch verknüpften c .a und .o Dateien verbindet. Bitte beachten Sie, dass es Sun ld aus Pfad „/ usr/ccs/bin/ld“Wie man Optionen ändert, die an ld übergeben werden, ohne gcc neu zu kompilieren
Bei Verknüpfung Zeit wird mit i eine lange Liste von Symbolen bekam und folgende Fehler
ld: fatal: relocations remain against allocatable but non-writable sections
collect2: ld returned 1 exit status
Dann habe ich versucht zu bauen es übergibt -z textoff-Option an ld. aber ich bin immer follwing Fehler
ld: fatal: option -ztextoff and -ztext are incompatible
ld: fatal: Flags processing errors
Gibt es eine andere Art und Weise, wo ich brauche nicht gcc neu zu kompilieren und ändern noch die Optionen ld übergeben zu werden.
Ich denke, ich habe gerade jetzt einen Weg. gcc verwendet normalerweise die Datei "specs", um Optionen, die an die generische gcc-Schnittstelle übergeben werden, an die Option für den zugrunde liegenden Assembler und Linker zu konvertieren. in gcc 3.4.6 gibt es eine Option, die wir unsere eigene "specs" Datei übergeben können. Also was ich getan habe ist, kopierte ich die Originaldatei und änderte es, um Option -ztext an sun linker nicht zu übergeben. Ich bezweifle, dass dies der richtige Weg ist, aber es hat den Zweck für jetzt gelöst, und ich kann mit meiner Arbeit fortfahren, bis ich das richtig konfigurierte gcc bekam. Abfrage ist noch offen für die bessere oder richtige Lösung. – nurxb01