Название: symbol lookup error Отправлено: chu от Август 16, 2012, 16:59 На рабочем компьютере с Ubuntu 10.04 и Qt 4.8.1 скомпилировал программу.
Перенес её на другой компьютер c точно такой же Ubuntu, но без Qt. Комп не имеет доступа к интернету, поэтому скачал с сайта http://packages.ubuntu.com (http://packages.ubuntu.com) необходимые .deb пакеты (qt библиотеки) и установил их на него. Запускаю программу, выдаёт ошибку: Код: /path/to/bin: undefined symbol: _ZN6QImage4fillEN2Qt11GlobalColorE Готовых .deb пакетов библиотек qt4.8.1 я не нашел, предполагаю их и нет, зато на сайте http://qt.nokia.com/downloads/ (http://qt.nokia.com/downloads/) есть исходники (qt-everywhere-opensource-src_4.8.2). Нашел утилиту checkinstall, которая может из исходников создавать .deb пакеты: Код: cd /path/to/extracted/package Вопрос: где взять, как создать эти самые .deb пакеты с библиотеками qt4.8? Название: Re: symbol lookup error Отправлено: kambala от Август 16, 2012, 18:48 а со своей машины разве нельзя взять готовые библиотеки?
Название: Re: symbol lookup error Отправлено: Alex Custov от Август 17, 2012, 00:42 synaptic показывает список установленных пакетов, а не библиотек. Понятно, что после установки qt-everywhere-opensource-src_4.8.2-1_i386.deb в synaptic будет отображаться именно он.
Но ближе к теме. Сама программа тоже оформлена в виде deb пакета? Если да, то самое быстрое и несколько кривое - прописать пакет qt-everywhere-opensource-src >= 4.8.1 в качестве альтернативы в control файл. Если не в виде deb пакета, то всё должно работать и так. Название: Re: symbol lookup error Отправлено: chu от Август 17, 2012, 01:19 Программа оформлена в виде исполняемого файла + конфиги, ресурсы и т.д.
Установил на оффлайн комп QtSDK (подумал вместе с ним в системе пропишутся необходимые либы, но нет). Зато теперь если в консоли прописать export LD_LIBRARY_PATH=/path/to/qtsdk/lib, из неё можно запускать моё приложение. Но хочется запускать его из файлового проводника (nautilus). Опять же гуглил, нашел кучу разных способов прописать путь к каталогу с либами (в /etc/envarinment /etc/profile и еще разные другие) , но, что удивительно, не один не сработал (видимо мне очень везет сегодня). Так что вопрос остается открытым. Название: Re: symbol lookup error Отправлено: Alex Custov от Август 21, 2012, 12:15 Установи Qt библиотеки из любого пакета - хоть из стандартных libqt4-*, или твоего qt-everywhere-opensource-*, главное чтобы Qt либы в твоём пакете ложились в /usr/lib или /usr/local/lib, чтобы их нашла программа при запуске.
Название: Re: symbol lookup error Отправлено: chu от Август 21, 2012, 18:25 Установи Qt библиотеки из любого пакета - хоть из стандартных libqt4-*, или твоего qt-everywhere-opensource-*, главное чтобы Qt либы в твоём пакете ложились в /usr/lib или /usr/local/lib, чтобы их нашла программа при запуске. После установки стандартных(скачанных с http://packages.ubuntu.com ) программа выдает ту самую ошибку.Пакет qt-everywhere-opensource-* содержит исходники, которые нужно собирать, в нем смысла, как я сейчас понял, нет так как он выдаст уже имеющиеся у меня на рабочем компе библиотеки. Можно под рутом скопировать эти самые библиотеки с рабочего компа в /usr/lib и программа будет работать, но мне кажется это решение не честным, так как плохо что-то устанавливать в обход менеджера пакетов. Название: Re: symbol lookup error Отправлено: Alex Custov от Август 21, 2012, 20:53 библиотеки должны быть такой же версии или выше той версии Qt, с которой вы компилировали на своём компе. Если вы компилировали с 4.8 а на второй комп поставили 4.6, то скорее всего всё будет вылетать.
Или компилируйте на своём с 4.6, или на первом компе скомпилируйте пакет qt-everywhere-opensource-4.8.1 (это нужно не для рабочего компа!) и поставьте на второй комп. |