определить, построен ли бинарный файл ELF с оптимизацией - PullRequest
0 голосов
/ 23 октября 2018

Я знаю, что мы можем использовать cmake или make для управления CFLAGS или CXXFLAGS для создания версии выпуска вручную.release версия для меня означает, что -O2 или -O3 дано как минимум, не имеет значения, выполняется ли -g или strip, тогда как debug дано -O0.

Однако иногда я хочу использовать сценарии, чтобы решить, был ли двоичный файл эльфа создан с оптимизацией, поэтому я могу решить, что делать дальше.Я пытался objdump или file или readelf, но не нашел ответов.Есть ли альтернативы, которые я могу сделать это?

1 Ответ

0 голосов
/ 23 октября 2018

Однако иногда я хочу использовать сценарии, чтобы решить, был ли двоичный файл эльфа создан с оптимизацией, поэтому я могу решить, что делать дальше.

Проблема с вашим вопросом заключается в том, что ваш двоичный файлвесьма вероятно, что он содержит некоторый код, созданный с оптимизацией (например, crt0.o - часть GLIBC).

Ваш окончательный двоичный файл состоит из набора объектных файлов, и эти файлы не должен иметь согласованные флаги оптимизации.

Скорее всего, вы заботитесь только о написанном вами коде (в отличие от кода, связанного из других библиотек).Вы можете использовать -frecord-gcc-switches для этого.См. этот ответ .

...