Третья сторона предоставила мне статическую библиотеку (.a) для связи на станции Solaris.
Я попытался скомпилировать с SunPro, и не удалось на шаге ссылки.
Я полагаю, что проблема исходит от используемого мной компилятора (вместо gcc?) Или просто его версии (поскольку библиотека std, предоставляемая компилятором, может измениться по сравнению с версией, ожидаемой библиотекой AFAIK, это может привести к ошибкам на этапе компоновки ).
Как я мог узнать, какой компилятор использовался для генерации этой библиотеки? Есть ли инструменты, которые делают это? Какой-нибудь вариант в sunpro / gcc или как там?
Подсказка: Некоторое время назад я читал, что компиляторы используют разные соглашения о искажениях при генерации объектных файлов (верно?). Тем не менее, "nm --demangle" командная строка выводит мне все имена функций из символов отладки в этой статической библиотеке. Как это работает ? Если мое предположение в порядке, nm действительно может решить, какое соглашение используется в статической библиотеке, не так ли? Или это просто означает, что lib была сгенерирована GNU gcc, так как nm является частью GNU binutils?
Я не близко к своей рабочей станции, поэтому я не могу скопировать и вставить вывод ошибок из компоновщика (на данный момент, но я мог бы скопировать их в дальнейшем редактировании)