I've already read the gcc
manpage, but I still can't understand the difference between -fpic
and -fPIC
. Can someone explain it, in a very simple and clear way?
Related questions:
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Используйте -fPIC
или -fpic
, чтобы сгенерировать независимый от позиции код . Использование -fPIC
или -fpic
для генерации независимого от позиции кода зависит от цели. Выбор -fPIC
всегда работает, но может дать больший код, чем -fpic
(нужно помнить, что PIC имеет больший корпус, поэтому он может производить больший объем кода) . Использование опции -fpic
обычно генерирует меньший и более быстрый код, но будет иметь ограничения, зависящие от платформы, такие как количество глобально видимых символов или размер кода. Компоновщик скажет вам, подходит ли он, когда вы создадите общую библиотеку. В случае сомнений я выбираю -fPIC
, потому что он всегда работает.