Насколько переносимы ссылки исполняемых файлов на загружаемые модули? - PullRequest
5 голосов
/ 01 октября 2011

У меня есть проект с некоторыми библиотеками, которые скомпилированы как загружаемые модули, то есть связаны с флагом -module libtool.Предполагается, что эти библиотеки содержат все необходимые функции сами по себе или их зависимости, то есть они должны привести к полной программе, когда связаны с простой функцией main (), которая просто вызывает все функции интерфейса модуля длямоя программа.

Поскольку у меня раньше были проблемы с неполными и, следовательно, непригодными для использования модулями, у меня есть несколько простых программ проверки, которые просто содержат main () и связаны с модулями.Когда функция отсутствует, компоновщик каркает с соответствующими предупреждениями, так что все хорошо.Тем не менее, libtool дает мне одно предупреждение:

*** Warning: Linking the executable checkplugin_locprec against the loadable module
*** liblocprec.so is not portable!

Я понимаю цель и назначение этого предупреждения (не связывайте программу с библиотекой, созданной с -module), но не с серьезностью, и этомой вопрос:

Насколько серьезно это предупреждение?Мне просто повезло, что это работает на платформах, для которых я компилирую (i386 / x86_64 Linux и MinGW), или это предупреждение относится только к какой-то непонятной платформе backwood, которую я могу спокойно игнорировать?

1 Ответ

2 голосов
/ 03 октября 2011

Основная платформа, на которой это не работает, - Mac OS X. На других платформах она обычно должна работать, но может не работать в зависимости от других используемых вами вариантов сборки. Если вы использовали libtool, то вы, вероятно, в безопасности на других платформах.

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