2009-11-07 5 views
1

Операционная система: AIX 5.3. компилятор: xlC_rПочему мы проходим этап связывания и все еще пропускаем символы?

система сборки: "Unix Makefiles"

наше приложение использует несколько статичной (.a) и LIBS несколько общих ( .so) LIBS. процесс сборки успешно проходит (мы получаем некоторые дубликаты предупреждений символов). , но когда мы пытаемся выполнить, мы получаем символы, пропускающие ошибки.

Примечание: мы не используем dl для загрузки общих библиотек во время выполнения.

Мы что-то упускаем?

Почему мы проходим этап связывания и все еще пропускаем символы?

+0

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

+0

Также помните, что AIX имеет разные значения для .a и .so по сравнению с другими Unix/Linux. –

ответ

0

Общие библиотеки могут зависеть от других sharedlib, которые они не могут найти во время выполнения.

Убедитесь, что ваша среда настроена правильно, так что dlopen() знает, где искать общие папки.

2

Динамические символы проверяются на время связывания, поэтому, если вам не хватает чего-то на выполнение, то любая из динамических библиотек или их зависимостей может быть не в правильном пути.

 Смежные вопросы

  • Нет связанных вопросов^_^