gcc static linking пытается / не может найти libgcc_s.a

Мое приложение C ++ отлично работает с динамическим связыванием по умолчанию, но ... Я пытаюсь статически связать все библиотеки с приложением, поскольку, к сожалению, пользователи не могут установить соответствующие библиотеки (или, точнее, их провайдеры не будут на серверах в использования). Поэтому я добавил -static в качестве опции ссылки.
LD не может открыть libgcc_s.a, что кажется неправильным.
LD успешно открывает libgcc.a
Если я правильно понимаю (и, пожалуйста, исправьте меня, если я ошибаюсь!):

  1. libgcc_s - это общая версия libgcc, поэтому общий объект.
    Статически связанный исполняемый файл должен использовать только libgcc.a, а не libgcc_s, верно?
  2. , кроме -static, какие аргументы компоновщика мне нужно указать? Кажется, он находит все остальное, что ему нужно, в аромате.

$ gcc - версия
gcc (Ubuntu 4.8.4-2ubuntu1 ~ 14.04.4) 4.8.4 Copyright (C) 2013 Free Software Foundation, Inc.
$ uname -s -r --m
Linux 3.19.0-51-generic x86_64

Заранее благодарен за любую помощь, С наилучшими пожеланиями, Дейв

PS:

g++ -Xlinker -static -o "airparse"  ./src/ArcBuild.o ./src/ParsTool.o ./src/airparse.o ./src/airway.o ./src/coordint.o ./src/mapBuild.o 
./src/mapdata.o ./src/n_assert.o     
/usr/bin/ld: cannot find -lgcc_s  
/usr/bin/ld: cannot find -lgcc_s  
collect2: error: ld returned 1 exit status  
make: *** [airparse] Error 1
0
задан 20 August 2019 в 15:37

1 ответ

К сожалению, это появляется - статическая опция ссылки в , gcc (4.8.4-2ubuntu1~14.04.4 Ubuntu) 4.8.4 повреждается. Возможно, какая-то ошибка спецификаций?

Так или иначе, я работал вокруг проблемы путем обновления до gcc (8.3.0-6ubuntu1 Ubuntu) 8.3.0 и эта версия ссылки с - статический AOK.

0
ответ дан 23 October 2019 в 05:16

Другие вопросы по тегам:

Похожие вопросы: