Сборка Mumble под Slackware

мануалы
Ответить
Starduster
Сообщения: 2
Зарегистрирован: 12 мар 2010, 03:35

Сборка Mumble под Slackware

Сообщение Starduster » 12 мар 2010, 03:46

Не нашёл таких инструкций в Интернете, поэтому написал свою. Выложить решил здесь.

Как собрать Mumble КЛИЕНТ под Slackware 12

Требования:
1) Qt4: http://qt.nokia.com/
2) Boost: http://www.boost.org/
3) protoc и другие Protocol: http://code.google.com/p/protobuf/downloads/list

Подготовка к сборке:
для линковки указать флаг "-z muldefs" (приписать в файл "compiler.pri" в раздел "unix:!macx" следующую строку:

Код: Выделить всё

QMAKE_LFLAGS *= -Wl,-z,muldefs
или дописать " -Wl,-z,muldefs" в конец строки "QMAKE_LFLAGS *= -Wl,-z,...").

Сброка:

Код: Выделить всё

#qmake CONFIG+=no-update CONFIG+=no-pulseaudio CONFIG+=no-portaudio CONFIG+=no-g15 CONFIG+=no-bonjour CONFIG+=no-speechd CONFIG+=no-embed-qt-translations
#make release
Дополнительно должны быть выполнены такие требования:
1) программы "lrelease" и "qmake" или симлинки на них должны быть в директории "/usr/local/bin" (см. http://www.qtforum.org/article/25061/pr ... qmake.html);
2) директория "boost" с hpp-файлами библиотеки boost должна быть доступна для инклюда - лежать в "/usr/include", к примеру;
3) so-файлы "protobuf*" должны быть доступны для линковки - лежать, к примеру, в "/usr/lib"; по умолчанию "make install" кладёт эти файлы в "/usr/local/lib";

Принято, чтобы всю эту работу (проверку требований + настройку параметров сборки) производил скрипт конфигурации "configure", но с программой Mumble такой скрипт, к сожалению, не прилагается.

Сервер мне был не нужен, как его компилировать - я уже не разбирался...

Kroll
Сообщения: 11
Зарегистрирован: 03 янв 2010, 15:54

Re: Сборка Mumble под Slackware

Сообщение Kroll » 12 мар 2010, 07:49

"QMAKE_LFLAGS *= -Wl,-z,muldefs"

Это зачем? Без этого же вроде собирается нормально.

Starduster
Сообщения: 2
Зарегистрирован: 12 мар 2010, 03:35

Re: Сборка Mumble под Slackware

Сообщение Starduster » 13 мар 2010, 00:27

Kroll писал(а):"QMAKE_LFLAGS *= -Wl,-z,muldefs"

Это зачем? Без этого же вроде собирается нормально.
Эти флаги позволяют избежать следующей ошибки:

Код: Выделить всё

g++ -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt-4.6.1/lib -o ../../release/mumble11x release/BanEditor.o release/ACLEditor.o release/Log.o release/AudioConfigDialog.o release/AudioStats.o release/AudioInput.o release/AudioOutput.o release/main.o release/MainWindow.o release/ServerHandler.o release/About.o release/ConnectDialog.o release/Settings.o release/Database.o release/VersionCheck.o release/Global.o release/PlayerModel.o release/Audio.o release/ConfigDialog.o release/Plugins.o release/LookConfig.o release/AudioWizard.o release/ViewCert.o release/Messages.o release/TextMessage.o release/GlobalShortcut.o release/NetworkConfig.o release/LCD.o release/Usage.o release/ConfigWidget.o release/SocketRPC.o release/Timer.o release/CryptState.o release/OSInfo.o release/Message.o release/Player.o release/Channel.o release/ACL.o release/Connection.o release/smallft.o release/CrashReporter.o release/GlobalShortcut_unix.o release/TextToSpeech_unix.o release/ALSAAudio.o release/OSS.o release/DBus.o release/moc_BanEditor.o release/moc_ACLEditor.o release/moc_Log.o release/moc_AudioConfigDialog.o release/moc_AudioStats.o release/moc_AudioInput.o release/moc_AudioOutput.o release/moc_MainWindow.o release/moc_ServerHandler.o release/moc_About.o release/moc_ConnectDialog.o release/moc_GlobalShortcut.o release/moc_TextToSpeech.o release/moc_Database.o release/moc_VersionCheck.o release/moc_PlayerModel.o release/moc_ConfigDialog.o release/moc_Plugins.o release/moc_LookConfig.o release/moc_AudioWizard.o release/moc_ViewCert.o release/moc_TextMessage.o release/moc_NetworkConfig.o release/moc_LCD.o release/moc_Usage.o release/moc_ConfigWidget.o release/moc_SocketRPC.o release/moc_Player.o release/moc_Channel.o release/moc_ACL.o release/moc_Connection.o release/moc_CrashReporter.o release/moc_GlobalShortcut_unix.o release/moc_ALSAAudio.o release/moc_OSS.o release/moc_DBus.o release/qrc_mumble.o    -L../../release -L/usr/local/Trolltech/Qt-4.6.1/lib -L/usr/X11R6/lib -lspeex -lrt -lXi -lQtDBus -L/usr/local/Trolltech/Qt-4.6.1/lib -lssl -lcrypto -ldl -logg -lX11 -lasound -lQtSql -lQtXml -lQtOpenGL -L/usr/X11R6/lib -lQtGui -lQtNetwork -lQtCore -lpthread -lGLU -lGL
release/ACLEditor.o:(.bss+0x0): multiple definition of `boost::accumulators::(anonymous namespace)::extended_p_square_probabilities'
release/BanEditor.o:(.bss+0x0): first defined here
release/ACLEditor.o:(.rodata+0x0): multiple definition of `boost::accumulators::(anonymous namespace)::accumulator'
release/BanEditor.o:(.rodata+0x0): first defined here
release/ACLEditor.o:(.rodata+0x4): multiple definition of `boost::accumulators::(anonymous namespace)::sample'
release/BanEditor.o:(.rodata+0x4): first defined here
release/ACLEditor.o:(.rodata+0x8): multiple definition of `boost::accumulators::(anonymous namespace)::weight'
release/BanEditor.o:(.rodata+0x8): first defined here
release/ACLEditor.o:(.rodata+0xc): multiple definition of `boost::accumulators::(anonymous namespace)::weights'
release/BanEditor.o:(.rodata+0xc): first defined here
и_далее_ещё_несколько_тысяч_таких_строчек
Возможно, у меня эта ошибка появляется из-за того, что я не устанавливал библиотеку "boost" целиком, а только скопировал из неё необходимые для сборки mumble hpp-файлы.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя