Já li a página de gcc
manual, mas ainda não consigo entender a diferença entre -fpic
e -fPIC
. Alguém pode explicar de uma forma muito simples e clara?
Perguntas relacionadas:
Já li a página de gcc
manual, mas ainda não consigo entender a diferença entre -fpic
e -fPIC
. Alguém pode explicar de uma forma muito simples e clara?
Perguntas relacionadas:
man gcc
mas eminfo gcc
, que tem mais documentação.Respostas:
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Use
-fPIC
ou-fpic
para gerar código independente de posição. O uso-fPIC
ou-fpic
geração de código independente de posição depende do destino. A-fPIC
escolha sempre funciona, mas pode produzir código maior do que-fpic
(mnenômico para lembrar isso é que o PIC está em um caso maior, portanto, pode produzir grandes quantidades de código). Usar-fpic
opção geralmente gera código menor e mais rápido, mas terá limitações dependentes da plataforma, como o número de símbolos visíveis globalmente ou o tamanho do código. O vinculador dirá se ele se encaixa quando você cria a biblioteca compartilhada. Na dúvida, eu escolho-fPIC
, porque sempre dá certo.fonte
-fPIC
e-fpic
parece ter gerado o mesmo código. Parece que eles geram um código diferente apenas em m68k, PowerPC e SPARC.Na página de manual do Gcc :
Onde:
fonte