Ich habe die gcc
Manpage bereits gelesen , kann aber den Unterschied zwischen -fpic
und immer noch nicht verstehen -fPIC
. Kann es jemand auf sehr einfache und klare Weise erklären?
Verwandte Fragen:
Ich habe die gcc
Manpage bereits gelesen , kann aber den Unterschied zwischen -fpic
und immer noch nicht verstehen -fPIC
. Kann es jemand auf sehr einfache und klare Weise erklären?
Verwandte Fragen:
man gcc
sondern ininfo gcc
, die mehr Dokumentation haben.Antworten:
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Verwenden Sie
-fPIC
oder-fpic
, um positionsunabhängigen Code zu generieren. Ob positionsunabhängiger Code verwendet-fPIC
oder-fpic
generiert wird, hängt vom Ziel ab. Die-fPIC
Auswahl funktioniert immer, kann jedoch größeren Code erzeugen als-fpic
(mnenomic, um sich daran zu erinnern, dass PIC in einem größeren Fall vorliegt, sodass möglicherweise größere Codemengen erzeugt werden). Die Verwendung der-fpic
Option generiert normalerweise kleineren und schnelleren Code, unterliegt jedoch plattformabhängigen Einschränkungen, z. B. der Anzahl der global sichtbaren Symbole oder der Größe des Codes. Der Linker teilt Ihnen mit, ob er beim Erstellen der gemeinsam genutzten Bibliothek passt. Im Zweifelsfall wähle ich-fPIC
, weil es immer funktioniert.quelle
-fPIC
und habe-fpic
anscheinend den gleichen Code generiert. Es scheint, dass sie nur auf m68k, PowerPC und SPARC einen anderen Code generieren.Aus der Gcc-Handbuchseite :
Wo:
quelle