Страница 1 из 3
Solaris и сборка QT
Добавлено: 26 мар 2004, 11:43
beaver
да, все-таки открываю новую тему
в общем, сел собирать QT из сорцов (qt-x11-commercial-3.2.3.tar.gz), предварительно установив следующие пакеты:
- gcc_small-3.3.2-sol9-intel-local.gz
- make-3.80-sol9-intel-local.gz
- mysql-standard-4.0.18-pc-solaris2.8-i386.tar.gz
процедура мне знакомая, положил кое-какие либы куда надо, кое-какие ашники куда надо. забил в "конфигуре" нужные мне ключи - все идет пока что без ошибок. делаю make.
и тут... вываливается на libmysqlclient. причем нехорошо вываливается, показывает пару экранов сегментов памяти и прочего дебуг-мусора.
что делать - ума не приложу. под линухом никогда с такими эррорами не сталкивался.

Добавлено: 26 мар 2004, 14:25
fa3a
покажи первые 10 строчек еггога и последние 10....
Добавлено: 26 мар 2004, 18:44
chuck
опции для configure тоже, неплохо бы....
Добавлено: 26 мар 2004, 22:07
exe
Скорее всего надо запускать
./configure --without-mysql
или
./configure --disable-mysql
Поищи core файл и сделай file <core> - кто его сгенерил - make, gcc?
Добавлено: 29 мар 2004, 10:20
beaver
делалось так:
./configure -thread -debug -platform solaris-g++ -qt-sql-mysql
хинт про -disable-mysql меня повеселил, поскольку mysql необходим как воздух. и к тому же тема отработанная на Linux, где все было хорошо в этом смысле.
дальше. делаю make. и имею:
make[1]: Entering directory '/usr/local/lib/qt-x11-commercial-3.2.3'
cd qmake && make
make[2]: Entering directory '/usr/local/lib/qt-x11-commercial-3.2.3/qmake'
make[2]: 'qmake' is up to date
make[2]: Leaving directory '/usr/local/lib/qt-x11-commercial-3.2.3/qmake'
cd src/moc && make
make[2]: Entering directory '/usr/local/lib/qt-x11-commercial-3.2.3/src/moc'
make[2]: Nothing to be done for 'first'
make[2]: Leaving directory '/usr/local/lib/qt-x11-commercial-3.2.3/src/moc'
cd src && make
make[2]: Entering directory '/usr/local/lib/qt-x11-commercial-3.2.3/src'
test -d ../lib/ || mkdir -p ../lib/
........................
далее идут логи по сборке различных *.o и *.a, все нормально. затем появляется следующее чудо:
Text relocation remains
against symbol offset in file
pipe_sig_handler 0x108 /usr/lib/libmysqlclient.a (libmysql.o)
<unknown> 0x2c9 /usr/lib/libmysqlclient.a (libmysql.o)
pipe_sig_handler 0x2f4 /usr/lib/libmysqlclient.a (libmysql.o)
pipe_sig_handler 0x3bc /usr/lib/libmysqlclient.a (libmysql.o)
........................
и еще пару экранов аналогичных строк. заканчивается все следующими сообщениями:
ld: fatal: relocations remains against allocatable but non-writable sections
make[2]: *** [../lib/libqt-mt.so.3.2.3] Error 1
make[2]: Leaving directory '/usr/local/lib/qt-x11-commercial-3.2.3/src'
make[1]: *** [sub-src] Error 2
make[1]: Leaving directory '/usr/local/lib/qt-x11-commercial-3.2.3'
make[1]: *** [init] Error2
Добавлено: 29 мар 2004, 10:45
fa3a
ты mysql билдил как статик? если да, то и для qt надо указывать как статик. возможно еще, что mysql у тебя был сбилден и как статик и как шаред (две либы).. в общем посмотри какая берется либа и какая надо.. проще всего попробуй сбилдить против шареной сначала (если есть).. а потом обе статик попробуй сбилдить..
Добавлено: 29 мар 2004, 16:33
beaver
mysql была собранная из пакета (см. выше), сам не собирал. под линухом те же пакеты были, собирались на ура

Добавлено: 29 мар 2004, 18:46
fa3a
ну там же 2.8 пакеты... у тебя 9.. рекомендую -- перекомпиляй сам... может mysql еще чего попросит...
Добавлено: 30 мар 2004, 14:18
beaver
тащу сорцы mysql. если есть какой изветсный подвох со сборкой (как с QT) - просьба сообщить заранее

Добавлено: 30 мар 2004, 23:43
chuck
2Beaver: Там в документации к MySQL описываются и особенности сборки под конкретную платформу (что-то типа README.Solaris)... Рекомендуется почитать и его....
Добавлено: 31 мар 2004, 11:45
beaver
README.Solaris мной не обнаружен
не собирается, сволочь этакая (mysql), вываливается ошибкой:
make[2]: *** [libreadline.a] Error 1
make[2]: Leaving directory '/install/mysql-4.0.18/readline'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/install/mysql-4.0.18'
make: *** [all] Error 2
---------------------
в ./configure --help никаких интересных ключей не нашел, делал просто:
./configure --prefix=/usr/local/mysql
правда наблюдались следующие сообщения:
configure: WARNING: term.h: present but cannot be compiled
configure: WARNING: term.h: check for missing prerequistive headers?
configure: WARNING: term.h: proceeding with the preprocessor's result
а также
configure: WARNING: sys/pterm.h: present but cannot be compiled
configure: WARNING: sys/pterm.h: check for missing prerequistive headers?
configure: WARNING: sys/pterm.h: proceeding with the preprocessor's result
?????
p.s. может каких пакетов не хватает?
Добавлено: 31 мар 2004, 12:04
fa3a
ты ошибку саму покажи... либо во время компиляции, либо во время линковки.. то что ты продемонстрировал это уже последствия// но не сама ошибка..
короче, склифасовский, зайди в /install/mysql-4.0.18/readline диру и сделай там make... посмотри какие ошибки будут..
Добавлено: 31 мар 2004, 13:40
chuck
Переименовываем тред в сборку mysql....
Все опции четко прописаны и указаны:
http://www.mysql.com/doc/en/Solaris.html
Рекомендуется все же почитать, преждечем колбасится

:
Я вообще не очень вкуриваю, почему берется 4.x версия MySQL?
3.x - недостаточно ?- если его собирать все же...
Берем mysql-max-3.23.58-pc-solaris2.8-i386.tar.gz - c mysql.com, вроде.
Там есть чудесный файлик - manual.txt:
В нем - следующее:
Binaries built on MySQL AB development systems:
<skip>
Sun Solaris 8 x86 with `gcc' 3.2.3
`CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3
-fno-omit-frame-pointer -felide-constructors -fno-exceptions
-fno-rtti" ./configure --prefix=/usr/local/mysql
--localstatedir=/usr/local/mysql/data
--libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--disable-shared --with-innodb'
Неужели это сложно сделать?
Добавлено: 31 мар 2004, 13:59
beaver
нет, это сделать несложно.
тока возьми сорцовый пэкэдж mysql-4.0.18 и ткни меня носом в такой вот ноут для солариса. я что-то подобного не заметил.
а таскать бинарники 3го mysql... или "почему берется 4.x версия MySQL"... а что крамольного-то??? захожу на сайто, тисну кнопку "тащить сорцы", тащу сорцы. почему 4го, а не 3го? ну а почему не 2го или 1го?
ладно, пошел отрабатывать хинты.
p.s. между прочим... вышеизложенное относиться к соларис8 (у меня 9)
Добавлено: 31 мар 2004, 16:00
beaver
переконфигурил mysql замудреным образом:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions
-fno-rtti" ./configure --prefix=/usr/local/mysql
--localstatedir=/usr/local/mysql/data
--libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--disable-shared --with-innodb
на make - та же ошибка. дальше:
cd readline && make
результат:
false cru libreadline.a readline.o funmap.o keymap.o vi_mode.o parens.o rltty.o complete.o bind.o isearch.o display.o signals.o util.o kill.o undo.o macro.o input.o callback.o terminal.o xmalloc.o history.o histsearch.o histexpand.o histfile.o nls.o search.o shell.o tilde.o
make: *** [libreadline.a] Error 1