разница между -lgcc_s и gcc - PullRequest
       28

разница между -lgcc_s и gcc

14 голосов
/ 28 декабря 2010

В чем разница между связыванием с gcc_s и gcc с помощью LDFLAGS?

Является ли gcc_s статической библиотекой и gcc общей библиотекой?

Потому что я искал решение, в котором упоминается ссылка на gcc, тогда как в моем случае работает только gcc_s.Я хотел бы знать реальную разницу.

<<hidden symbol `__name_here' in /some/library/path.a(_filename.o) is referenced by DSO

В этом случае проблему обычно решают, добавляя либо «-l gcc», либо «gcc -print-libgcc-file-name» к флагам связывания (LDFLAGS).Однако, в отличие от других моих обычных платформ (i386, amd64, sparc64), этого было недостаточно.После долгих ударов головой (честно говоря, это также связано с музыкой) я понял, что этот флаг необходим как при связывании libc , так и окончательного исполняемого файла.ссылка: http://people.defora.org/~khorben/200903.html

1 Ответ

15 голосов
/ 28 декабря 2010

libgcc_s.so является общей библиотекой, libgcc.a является статической библиотекой. Они не эквивалентны; может быть необходимо связать оба. libgcc_s содержит глобальные переменные, которые не должны иметь несколько копий в процессе; код в libgcc безопасен для многократной ссылки.

...