Статически связанные xerces 3.0.0 не работают, а динамические работают в Linux - PullRequest
1 голос
/ 01 декабря 2010

Поэтому я пытаюсь статически связать Xerces 3.0.0 в linux.

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

Я изменил все файлы make, чтобы сделать это соответствующим образом

-Wl,-Bstatic ... -lxerces-c -Wl,-Bdynamic ...

Но я получаю следующие ошибки:

  undefined reference to '__ctype_b'
  undefined reference to '__ctype_tolower'
  undefined reference to '__ctype_toupper'

Я исправил этис методом грубой силы, найденным здесь

Но был другой тип ошибок, связанных с xerces.это не решает проблему ... Эти ошибки исходят от Xerces ... и динамическая версия работает нормально, статическая ошибка ...

Любые идеи ???

Спасибо

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Динамическая версия xerces будет иметь зависимости от libpthread, которые гарантируют, что загрузчик подберет правильную библиотеку.

Указание libphtread в командной строке вашего компоновщика должно исправить эти неразрешенные внешние проблемы, вы (а) поместилив нужном месте командной строки, поскольку порядок имеет значение, и (б) пробовали ли вы статическую и динамическую версии libpthread?

0 голосов
/ 01 декабря 2010

Порядок связанных библиотек имеет значение для компоновщика, попробуйте изменить порядок для pthread lib.

...