Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка в GLIBC 
:(
    Опции темы
gordmiand
Дата 14.8.2013, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



Под ubuntu 12.04 собрал статически Qt 4.6 и статически же свою программу...при запуске (без пересборки!!!) этой программы под другой линуксоподобной ОС с, видимо, GLIBC другой версии (нежели в ОС, где собиралась статически эта программа) выдается ошибка "GLIBC_2.4. not found required by..."...как это исправить?
PM MAIL   Вверх
bsa
Дата 15.8.2013, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



gordmiand, или установить GLIBC версии не ниже 2.4, либо собрать Qt и программу, с использованием той же версии glibc, что и на "другой линускоподобной ОС".
PM   Вверх
gordmiand
Дата 15.8.2013, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



запустил файл ./libc.so.6:
на компьютере с ubuntu 12.04, где собиралась программа, команда выдает
Код

GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10) stable release version 2.15, by Roland McGrath et al. 
 
на компьютере со старенькой "линускоподобной ОС" эта же команда выдает
Код

GNU C Library stable release version 2.3.6, by Roland McGrath et al. 

а как мне собрать свою программу (и еще Qt надо пересобрать?) с указанным мной GLIBC (т.е. взятой с компа с линуксоподобной ОС)?
что мне надо для этого переписать с компа с линуксоподобной ОС: glibc - это только один файл libc-2.3.6.so (на него ссылается libc.so.6)), который кстати намного больше по размеру, чем его аналог от ubuntu (хотя вроде версия выше, а размер меньше)...
PM MAIL   Вверх
bsa
Дата 15.8.2013, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



gordmiand, в убунте используется eglibc - усовершенствованная gnu libc.
Одной libc-*.so будет недостаточно. Поэтому, тебе необходимо собрать Qt для этой версии glibc. Хотя, не уверен, что это получится. Более того, есть ограничения на версию gcc. Короче, если есть возможность, обнови свою "линуксоподобную ОС". Если нет, то готовься к большим проблемам. Возможно, придется пробовать разные версии Qt.
PM   Вверх
gordmiand
Дата 16.8.2013, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



bsa: а разве смена версий Qt может мне помочь? насколько я понял, glibc относится к ОС, а не к Qt? на линуксоподобной ОС стоит и работает Qt 4.7.2 (не я ставил, поэтому ничего сказать не могу), под ubuntu собирал программу на Qt 4.6.3 - при попытке установки Qt 4.6.3 SDK на линуксоподобную ОС в самом конце установки выдается все та же ошибка об отсутствии GLIBC_2.4...могу под ubuntu попробовать собрать программу с использованием Qt 4.7.2, но что это даст в отношении glibc?
PM MAIL   Вверх
bsa
Дата 19.8.2013, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



gordmiand, то что там стоит и работает 4.7.2 - ни о чем еще не говорит, кроме того, что можно попробовать собрать и 4.8.x. Скорее всего, Qt необходимо собирать конкретно под твою ОС (кстати, ты так не определил еще дистрибутив?).
Если машина слабая, то сборку можно ускорить через копирование файлов ОС (все каталоги, кроме /dev, /home, /proc, /sys, /tmp) на мощный комп и вход в нее через chroot.
PM   Вверх
gordmiand
Дата 20.8.2013, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



так каким именно образом можно собрать Qt под конкретную ОС? можно ли к проекту подключить эту glibc и таскать с проектом файлики (какие именно?) этой библиотеки? 
PM MAIL   Вверх
bsa
Дата 21.8.2013, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(gordmiand @  20.8.2013,  22:06 Найти цитируемый пост)
так каким именно образом можно собрать Qt под конкретную ОС?
Очень просто. Скомпилируй под этой ОС.

Цитата(gordmiand @  20.8.2013,  22:06 Найти цитируемый пост)
можно ли к проекту подключить эту glibc и таскать с проектом файлики (какие именно?) этой библиотеки?  
А вот этого делать не стоит.

PM   Вверх
gordmiand
Дата 21.8.2013, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



собрать - это значит установить Qt (просто у меня целиком SDK) - для того, чтобы потом пересобрать там программу (чтобы она использовала glibc с данного компа)? как я уже говорил на линуксоподобной ОС уже собран Qt 4.7.2 и отлично работает.. но мне его использовать для пересборки программы не хотелось бы - долго, да и незачем...я для того на отдельном компьютере с ubuntu и собирал Qt статически, чтобы иметь возможность собирать программы, которые бы работали под другими линуксоподобными ОС без всякого Qt  (чтобы таскать с собой только один бинарник программы)... 
PM MAIL   Вверх
bsa
Дата 22.8.2013, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



gordmiand, ну тогда извиняй. ты хочешь слишком многого.
Попробуй еще и libc линковать статически.
http://stackoverflow.com/questions/2474329...tically-with-qt
PM   Вверх
gordmiand
Дата 3.9.2013, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



пытаюсь себе на ubuntu 12.04 поставить нужный мне glibc:
скачал архив glibc_2.3.6, разархивировал его, зашел в его папку и пытаюсь дать команду
Код

 ./configure --prefix=/home/glibc_ver_2.3.6

в ответ ошибка 
configure: error: you must configure in a separate build directory 
как мне ее исправить?
PM MAIL   Вверх
bsa
Дата 3.9.2013, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



gordmiand, ты не то делаешь. Надо наоборот - компилировать программу на системе, на которой работать собираешься. Или хотя бы установи в chroot копию этой системы.

Кстати, запустить что-либо собранное под другую glibc можно так:
1. Создаем каталог /opt/MyApp
2. Создаем в нем стандартную структуру: bin, lib, share
3. Копируем в /opt/MyApp/lib ссылку libc.so.6 и файл на который она ссылается, а так же ld*.so и другие библиотеки
4. Копируем свою программу в /opt/MyApp/bin
5. Создаем скрипт запуска в /opt/MyApp/bin:
Код

#!/bin/sh
APP_ROOT=`dirname $0`/..
exec $APP_ROOT/lib/ld-2.15.so --library-path $APP_ROOT/lib $APP_ROOT/myapp "$@"

PM   Вверх
gordmiand
Дата 3.9.2013, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



bsa: а почему нельзя попробовать на компе с ubuntu 12.04 попробовать собрать программу с нужной мне glibc (а не системной)? вот для этого я и пытаюсь поставить в отдельную папку glibc_2.3.6 : вышеуказанную ошибку исправил запускoм configure не из папки с дистрибутивом glibcб теперь выдается следующее
Код

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking sysdep dirs... sysdeps/i386/elf sysdeps/unix/sysv/linux/i386 sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv/i386 sysdeps/unix/sysv sysdeps/unix/i386 sysdeps/unix sysdeps/posix sysdeps/i386/i686/fpu sysdeps/i386/i686 sysdeps/i386/i486 sysdeps/i386/fpu sysdeps/i386 sysdeps/wordsize-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for gcc... gcc
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for ranlib... ranlib
checking whether as is GNU as... yes
checking whether ld is GNU ld... yes
checking for as... as
checking version of as... 2.22, bad

checking for ld... ld
checking version of ld... 2.22, bad
checking for pwd... /bin/pwd
checking for gcc... gcc
checking version of gcc... 4.6.3, ok
checking for gnumake... no
checking for gmake... no
checking for make... make
checking version of make... 3.81, ok
checking for gnumsgfmt... no
checking for gmsgfmt... no
checking for msgfmt... msgfmt
checking version of msgfmt... 0.18.1, ok
checking for makeinfo... no
checking for sed... sed
checking version of sed... 4.2.1, ok
checking for autoconf... no
configure: error:
*** These critical programs are missing or too old: as ld
*** Check the INSTALL file for required versions.
 
посмотрел я этот файлик INSTALL, да не понял что из него мне надо подчерпнуть полезного...


PM MAIL   Вверх
gordmiand
Дата 3.9.2013, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: нет
Всего: 0



bsa:
1. что конкретно имелось ввиду под "ld*.so и другие библиотеки" (как мне понять какие из всех системных файлов нужно мне скопировать)
2. зачем создавать папку share - туда вроде ничего не копируется?
3. поясните пож-та (можно на примере) скрипт:
что за dirname, myapp ?

PM MAIL   Вверх
bsa
Дата 4.9.2013, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



gordmiand
man dirname
myapp - твоя программа.
Цитата(gordmiand @  3.9.2013,  23:07 Найти цитируемый пост)
зачем создавать папку share - туда вроде ничего не копируется?

У кого как. У меня копируется  smile 
Цитата(gordmiand @  3.9.2013,  20:18 Найти цитируемый пост)
а почему нельзя попробовать на компе с ubuntu 12.04 попробовать собрать программу с нужной мне glibc (а не системной)?
Просто кроме glibc есть еще куча библиотек, которые от нее зависят. Вот ты пересоберешь Qt под эту glibc (если честно, еще тот геморрой собирать под другую libc), а кто будет пересобирать libX* и пр.? Поэтому, сделай копию файловой системы, зайди с использованием chroot и собери. Или собирай на том компе, на котором должно все будет работать.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.