Статическая связь с Sunstudio - PullRequest
0 голосов
/ 13 мая 2009

Я пытаюсь связать свою библиотеку ххх с библиотекой гггг. Я хочу связать статически, чтобы мне не нужно было упаковывать yyy вместе с xxx при доставке xxx. У меня есть две версии yyy, предоставленные третьей стороной: libyyy.so и libyyyln.a. Итак, я иду и связываюсь с -lyyyln.

Я не получаю сообщение об ошибке при ссылке. Зависимость от yyyln не появляется, когда я делаю "ldd libxxx.so". Но «ldd -r libxxx.so» показывает, что символы из yyy не разрешены. «nm libxxx.so» показывает, что эти символы из yyy являются UNDEF.

Что мне тогда не хватает?

Edit1: мне удалось, в конце концов, заставить его работать с

Ответы [ 5 ]

3 голосов
/ 14 мая 2009

Вы хотите поместить -Bstatic перед библиотеками, с которыми вы хотите статическую ссылку. Копайте Руководство по компоновщикам и библиотекам Solaris для получения дополнительной информации.

1 голос
/ 17 мая 2009

Вы могли задать этот вопрос на форуме Sun Studio и получить ответы непосредственно от команды разработчиков Sun Studio

Форумы Sun Studio (для C, C ++, Fortran и инструментов)

0 голосов
/ 28 мая 2009

Мне удалось заставить его работать в конце концов с "-l /fullpath/libyyyln.a"

Я играл с -Bstatic и -Bdynamic без успеха. Решение было действительно так же просто, как написано выше. Я должен был подумать об этом раньше.

0 голосов
/ 13 мая 2009

Посмотрите, поможет ли это: http://fortran -2000.com / ArnaudRecipes / sharedlib.html

0 голосов
/ 13 мая 2009

Я предполагаю, что вы используете gcc. По умолчанию, gcc будет использовать общие библиотеки (.so), если это возможно, поэтому вы должны принудительно установить статическую связь с параметром -static.

Редактировать: Извините, я думал, что sunstudio - это название библиотеки, которую вы пытаетесь связать, я забыл, что Sun Studio включает в себя компилятор. Впрочем, для студии Sun должна быть похожая опция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...