У меня проблема: у меня есть библиотека C ++ («DataTsBroad») и приложение C ++ Test («DataTsBroadTest»), чтобы проверить это.
Фактически, приложение Lib и Test оба скомпилированы под Debian Lenny.
Теперь я хочу продолжить компиляцию своего тестового приложения на Debian Lenny (ограничение клиента), но я бы скомпилировал свою библиотеку на Squeeze или Wheezy для работы с последними выпусками Debian.
Итак, я успешно скомпилировал свою Lib на Squeeze, но после того, как я попытался скомпилировать свое тестовое приложение с этой Lib на Lenny, это не удалось! Ошибка ссылки:
Связывание исполняемого файла CXX DataTsBroadTest /home/nis/pezierg/test/ProductMak/Export/DataTsBroad/L64/Release/libDataTsBroad64.so: неопределенная ссылка на `std :: ctype :: _ M_widen_init () const@GLIBCXX_3.4.11 '
collect2: ld вернул 1 статус выхода
make [2]: *** [DataTsBroadTest] Ошибка 1
make [1]: *** [CMakeFiles / DataTsBroadTest.dir / all] Ошибка 2
make: *** [all] Ошибка 2
Проблема, безусловно, связана с течь C ++ Lib, я попытался прокомментировать все, что он использует в моей Lib, и он работает.
Но как я могу решить проблему?
Я думаю, проблема может быть в разных версиях gcc / g ++ на Lenny и Squeeze. Попытайтесь уравнять их, либо обновите одну, либо понизьте версию другой, а затем повторите попытку.