У меня есть скрипт bash, который также компилирует программу в более старых версиях Ubuntu (14.04.x и 16.04.x), чем в последней (18.04.x), и в других дистрибутивах (Arch, CentOS, Debian, Fedoraи т. д.) и поэтому ... с другими настройками gcc.
Затем, чтобы получить исполняемый файл, который можно запустить (среди прочего) двойным щелчком, я должен скомпилировать эту программу без "-no"-pie "опция с более старыми версиями настройки gcc (Ubuntu 14.04.x и 16.04.x), когда мне нужно использовать эту опцию" = no-pie "для новой версии настройки gcc 7.3 (в Ubuntu 18.04.x).
Проблема в том, что в последнем выпуске Ubuntu (18.04.x) и его производных (Kubuntu, Xbuntu и т. Д. И, возможно, с другими дистрибутивами) с новой конфигурацией gcc (7.3) есть опция "--enable-default-pie ", если я скомпилирую свою программу без опции" -no-pie ", в результате получается, что созданный файл представляет собой исполняемый файл типа" общая библиотека ", который не может быть запущен двойнымнажмите.
Мой вопрос:
a) Есть ли команда, которая позволяет мне определить из сценария bash, настроен ли gcc с параметром --enable-default-pie?
b) если нет, есть ли команда, которая позволяет мне из сценария bash определить, относится ли скомпилированный файл к типу «разделяемая библиотека» или «исполняемый файл»?
Для этого второго варианта:Решением может быть то, как сохранить ответ «gcc -v» в файле .txt и проверить, есть ли строка «--enable-default-pie», но я абсолютно не знаю, как это сделать.
Если у меня нет ответа на мой первый вариант, второй вариант (правда, менее элегантный, но столь же эффективный) позволит мне сначала скомпилировать программу без опции "-no-pie", а затем проверитьсостояние такого созданного исполняемого файла и, если результатом является «разделяемая библиотека», перезапустите эту компиляцию на этот раз, используя опцию «-no-pie», чтобы, в одном случае, как и в другом, получить исполняемый файл, который можно запуститьдвойным щелчком мыши независимо отнастройка gcc может быть.
Заранее благодарим вас за ваше время, идеи и предложения.
С уважением.