PIC и PIE — это одно и то же понятие. Если это верно, я бы хотел использовать PIC для обозначения PIC/PIE.
PIC, похоже, является «атрибутом» двоичного кода, какой тип двоичного кода может быть выполнен независимо в какую ячейку памяти он загружен. Это правильно?
PIC/no-PIC не имеет прочной связи со статически/динамически связанным исполняемым файлом. Теоретически мы можем комбинировать PIC/non-PIC со статически/динамически связанным исполняемым файлом любым способом. Я заметил несколько интересных опций в руководстве по gcc, таких как «-static», «--static-pie», «-fno-pic», «-fpic». Я предполагаю, что:
"-static" создаст исполняемый файл без изображения.
"--static-pie" создаст исполняемый файл PIC, который содержит некоторые неизвестные символы, которые необходимо разрешить во время выполнения.
"-fpic" — это метод gcc по умолчанию при создании общей библиотеки.
< li>"-fno-pic" обычно используется в некоторых особых случаях, например, при создании операционной системы.
После некоторого поиска в Интернете я понял, что: [list] [*]PIC и PIE — это одно и то же понятие. Если это верно, я бы хотел использовать PIC для обозначения PIC/PIE. [*]PIC, похоже, является «атрибутом» двоичного кода, какой тип двоичного кода может быть выполнен независимо в какую ячейку памяти он загружен. Это правильно? [*]PIC/no-PIC не имеет прочной связи со статически/динамически связанным исполняемым файлом. Теоретически мы можем комбинировать PIC/non-PIC со статически/динамически связанным исполняемым файлом любым способом. Я заметил несколько интересных опций в руководстве по gcc, таких как «-static», «--static-pie», «-fno-pic», «-fpic». Я предполагаю, что: [list] "-static" создаст исполняемый файл без изображения. [*]"--static-pie" создаст исполняемый файл PIC, который содержит некоторые неизвестные символы, которые необходимо разрешить во время выполнения. [*]"-fpic" — это метод gcc по умолчанию при создании общей библиотеки. < li>"-fno-pic" обычно используется в некоторых особых случаях, например, при создании операционной системы. [/list]