crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Ошибки после компиляции и смене ОС, Ошибка с /lib/libc.so.6 и /usr/lib/libstdc++.so.6
devunvisible
  опции профиля:
сообщение 16.11.2011, 10:56
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 16.11.2011
Пользователь №: 3004

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте!
Помогите решить проблему плз :( Как все было:
На Виртуалке установил linux Ubuntu + Qt. Написал консольную програму, откомпилил, бинарник работает отлично.
Перенес бинарник на удаленный сервер linux CentOs 5.5 ... Бинарник не запускается, вылазит ошибка что нет библиотеки libQtSql.
Пересобрал Qt с параметром -static. Откомпилил у себя на Убунте, бинарник увеличился.
Перенес на CentOs, старая ошибка прошла, теперь появилась ерунда с которой ну никак не могу справится :((
./demon: /lib/libc.so.6: version `GLIBC_2.9' not found (required by ./demon)
./demon: /lib/libc.so.6: version `GLIBC_2.10' not found (required by ./demon)
./demon: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./demon)
./demon: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./demon)


Поискал в интернете, нашел что версий этих библиотек под CentOs 5.5 нет, появились в новой 6-й версии. Но обновлять операционку не выйдет.
В итоге два вопроса:
1. Почему бинарник зависит от каких то С++ библиотек? Как собрать чтобы они были включены в бинарник.
2. Может есть вариант понизить версию библиотек?
3. Вообще как это побороть :( Очень нужно...
Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 16.11.2011, 17:14
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1601
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


это не "какие-то С++ библиотеки", а самые главные, базовые библиотеки, на которых, собственно, собирается вся система. они первыми ставятся и если они меняются, то надо пересобирать всю систему с нуля.
а так, есть опции компилятора -static-libgcc и -static-libstdc++ (в GCC 4.5 и выше). но не факт, что заработает в таком виде прямо сразу. потому что каждый девелопер разных линюксов по-разному патчит ядро. самый надёжный метод - сборка из сорцов на целевой машине. собственно, потому линюкс и поставляется с сорцами.

Сообщение отредактировал Iron Bug - 16.11.2011, 17:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.1.2021, 13:08