Компиляция fgsd в Ubuntu 7.10 (Gutsy)

Материал из FlightGear.ru.

Перейти к: навигация, поиск

Опыт сборки fgsd в Ubuntu 7.10

FGSD (FlightGear scenery designer) — инструмент создания сценариев для FGFS. Ниже описан порядок компиляции FGSD и его зависимостей, что оказалось несколько нетривиальным, по крайней мере, под Ubuntu 7.10 (Gutsy Gibbon) на платформе x86_64.

Требуемое ПО

На сайте FGSD указаны следующие зависимости:

Дополнительно к этому в README ещё указаны pnglib и curl.

Нюансы установки

Первые семь указанных пакетов (не забывайте соответствующие -dev'ы!) вполне штатно ставятся из репозитория Ubuntu. С SimGear уже могут быть варианты. Если вы собирали FGFS 1.0.0 из исходников, то вам неизбежно пришлось собирать и соответствующий SimGear, таким образом, он у вас тоже уже присутствует. Если же вы довольствуетесь FGFS из репозитория (для Gutsy это будет версия 0.9.10), то, возможно, придётся доставить пакет simgear-dev.

FLU вообще отказалось собираться дефолтным компилятором 4.1.3, непонятно ругаясь то ли на "extra clarification", то ли на "extra qualification". Лечится двумя способами: либо прописыванием в Makefile'ы дополнительной опции компилятора "-fpermissive", либо установкой gcc и g++ версии 3.4.

CGAL, идущий в составе дистрибутива (точнее говоря, в разделе multiverse) имеет версию 3.3. fgsd 0.3.1a (последняя версия на сайте) компилироваться с ним отказался напрочь. Не помогли ни попытка сборки g++-3.4, ни даже пляски с бубном. В конце концов, с домашнего сайта была взята версия 3.1 и успешно собрана. Внимание! CGAL у меня не инсталлировалась в /usr/local, оставшись лежать там, где собралась. Поэтому пришлось внимательно читать README от fgsd, задавать fgsd'шному configure необходимые опции и линковать fgsd с libCGAL.a статически, путем временного переименования libCGAL.so на время линковки.

После успешного завершения сборки сделал make install и переименовал обратно динамическую библиотеку CGAL.

Вывод ldd результирующего бинарника

ap@home:~$ ldd `which fgsd`
       libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00002b8fb4b99000)
       libflu.so => /usr/local/lib/libflu.so (0x00002b8fb4dbc000)
       libfltk.so.1.1 => /usr/lib/libfltk.so.1.1 (0x00002b8fb502e000)
       libfltk_gl.so.1.1 => /usr/lib/libfltk_gl.so.1.1 (0x00002b8fb52db000)
       libz.so.1 => /usr/lib/libz.so.1 (0x00002b8fb54e5000)
       libplibsg.so.1.8.4 => /usr/lib/libplibsg.so.1.8.4 (0x00002b8fb56fc000)
       libplibssg.so.1.8.4 => /usr/lib/libplibssg.so.1.8.4 (0x00002b8fb5910000)
       libplibul.so.1.8.4 => /usr/lib/libplibul.so.1.8.4 (0x00002b8fb5fb8000)
       libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00002b8fb61bd000)
       libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00002b8fb63e2000)
       libglut.so.3 => /usr/lib/libglut.so.3 (0x00002b8fb6621000)
       libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00002b8fb6865000)
       libGL.so.1 => /usr/lib/libGL.so.1 (0x00002b8fb6ae9000)
       libXmu.so.6 => /usr/lib/libXmu.so.6 (0x00002b8fb6cb4000)
       libXt.so.6 => /usr/lib/libXt.so.6 (0x00002b8fb6ecd000)
       libSM.so.6 => /usr/lib/libSM.so.6 (0x00002b8fb7131000)
       libICE.so.6 => /usr/lib/libICE.so.6 (0x00002b8fb733a000)
       libXi.so.6 => /usr/lib/libXi.so.6 (0x00002b8fb7556000)
       libXext.so.6 => /usr/lib/libXext.so.6 (0x00002b8fb775f000)
       libX11.so.6 => /usr/lib/libX11.so.6 (0x00002b8fb7971000)
       libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002b8fb7c82000)
       libm.so.6 => /lib/libm.so.6 (0x00002b8fb7f8d000)
       libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002b8fb820f000)
       libc.so.6 => /lib/libc.so.6 (0x00002b8fb841d000)
       libXft.so.2 => /usr/lib/libXft.so.2 (0x00002b8fb8778000)
       libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00002b8fb898d000)
       libpthread.so.0 => /lib/libpthread.so.0 (0x00002b8fb8b8f000)
       libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00002b8fb8dab000)
       libidn.so.11 => /usr/lib/libidn.so.11 (0x00002b8fb8fd6000)
       libdl.so.2 => /lib/libdl.so.2 (0x00002b8fb9208000)
       libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00002b8fb940d000)
       libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00002b8fb9656000)
       libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x00002b8fb99d7000)
       libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0x00002b8fba42f000)
       libXau.so.6 => /usr/lib/libXau.so.6 (0x00002b8fba530000)
       libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00002b8fba733000)
       /lib64/ld-linux-x86-64.so.2 (0x00002b8fb497b000)
       libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00002b8fba938000)
       libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00002b8fbab6d000)
       libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00002b8fbaded000)
       libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00002b8fbaff6000)
       libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00002b8fbb28a000)
       libcom_err.so.2 => /lib/libcom_err.so.2 (0x00002b8fbb4b0000)
       libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00002b8fbb6b2000)
       libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00002b8fbb8ba000)
       libresolv.so.2 => /lib/libresolv.so.2 (0x00002b8fbbabd000)
       libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00002b8fbbcd2000)
ap@home:~$
Личные инструменты