Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сборка под Linux #12

Open
pblyp opened this issue Sep 1, 2019 · 24 comments
Open

Сборка под Linux #12

pblyp opened this issue Sep 1, 2019 · 24 comments

Comments

@pblyp
Copy link

pblyp commented Sep 1, 2019

Привет!

Будет здорово, если появится инструкция по сборке на Linux. Не сразу понял, что, к примеру, надо собирать с qmake и подхватывать зависимости командой git submodule update --init плюс хотелось бы список зависимостей.

На Arch у меня пока проблема со сборкой openscenegraph версии 3.7.0, в репозиториях сейчас версия 3.6.4.

Думаю, есть также смысл разобраться с #2

@einhander
Copy link

Можно упаковать в appimage чтобы не заморачиваться со сборкой на зоопарке дистрибутивов. Пользователи ленивы, собирать из сырцов будет 1 из 10.

@valdiks
Copy link

valdiks commented Sep 1, 2019

Буду благодарен, если кто подскажет как собрать/запустить под Ubuntu 18.04.

@maisvendoo
Copy link
Owner

maisvendoo commented Sep 2, 2019

На Arch у меня пока проблема со сборкой openscenegraph версии 3.7.0, в репозиториях сейчас версия 3.6.4.

Думаю, есть также смысл разобраться с #2

В ауре мой пакет - openscenegraph-dev - собирается в двух версиях - обычной и отладочной. Инструкцию - сделаю

@maisvendoo
Copy link
Owner

Можно упаковать в appimage чтобы не заморачиваться со сборкой на зоопарке дистрибутивов. Пользователи ленивы, собирать из сырцов будет 1 из 10.

Это хорошая идея, я думаю имеет смысл так и сделать на первое время

@SergeyDjam
Copy link

Подскажите, делаю сборку в свой дистрибутив ROSA Fresh. Столкнулся с той же проблемой, ссылается на

mkdir: невозможно создать каталог «/usr/lib/osgPlugins-3.7.0/»: Отказано в доступе

Тогда как в репозиториях https://github.com/openscenegraph/OpenSceneGraph/releases максимальная версия 3.6.4

@maisvendoo
Copy link
Owner

maisvendoo commented Sep 3, 2019

Подскажите, делаю сборку в свой дистрибутив ROSA Fresh. Столкнулся с той же проблемой, ссылается на
mkdir: невозможно создать каталог «/usr/lib/osgPlugins-3.7.0/»: Отказано в доступе

я поставил у себя chmod 777 на эту папку

@SergeyDjam
Copy link

  1. 0777 это же костыль и очень плохой костыль
  2. папки такой нет как класса, потому что в системе стоит osg 3.4.0. Сейчас озаботился сборкой 3.6.4 актуальной версии. 3.7.0 в принципе нигде нет..
  3. так как сборка будет осуществляться в сборочной, где используются контейнеры, с отсутствием принципиальной возможности поднять права, то смена прав на системные папки отсутствует.
    Поэтому вопрос более сложный

@maisvendoo
Copy link
Owner

  1. 0777 это же костыль и очень плохой костыль

Согласен

  1. папки такой нет как класса, потому что в системе стоит osg 3.4.0. Сейчас озаботился сборкой 3.6.4 актуальной версии. 3.7.0 в принципе нигде нет..

Есть для арча в ауре мой пакет openscenegraph-dev

@SergeyDjam
Copy link

openscenegraph-dev
не поделитесь ссылкой на исходники?

@maisvendoo
Copy link
Owner

maisvendoo commented Sep 3, 2019

не поделитесь ссылкой на исходники?

OSG или PKGBUILD?
Сам движок, его исходники тут
https://github.com/openscenegraph/OpenSceneGraph
А PKGBUILD вот он
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=openscenegraph-dev
по сути сценарий сборки пакета для арча

@SergeyDjam
Copy link

не поделитесь ссылкой на исходники?

OSG или PKGBUILD?
Сам движок, его исходники тут
https://github.com/openscenegraph/OpenSceneGraph
А PKGBUILD вот он
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=openscenegraph-dev
по сути сценарий сборки пакета для арча
Вы берете ветку master, верно понимаю? Тогда, ок, попробую из мастера собрать

@maisvendoo
Copy link
Owner

Вы берете ветку master, верно понимаю? Тогда, ок, попробую из мастера собрать

master

OSG собирается безо всяких проблем под линухой. Вот с мингв пришлось поковырятся

@shurshur
Copy link

shurshur commented Sep 3, 2019

Сборка под Ubuntu (в моём случае 18.04, но должно работать примерно под любыми версиями):

sudo apt install libqtbase5-dev libopenscenegraph-dev libopenal-dev
sudo mkdir /usr/lib/osgPlugins-3.7.0
sudo chown `whoami` /usr/lib/osgPlugins-3.7.0
mkdir RRSbuild
cd RRSbuild
git clone https://github.com/maisvendoo/RRS.git --depth=1 --recurse
cd RRS
qmake
make
cd ..
git clone https://github.com/maisvendoo/RRS-data.git data
ln -s RRS/cfg
ln -s RRS/themes
mkdir logs

Если не находит osg::PIf при сборке, значит, в системе старая версия OpenSceneGraph, но это легко решается патчем https://gist.github.com/shurshur/3e5456bfd6f83404f386d6e996c979dd

Из win-версии (можно установить в wine) берём каталог c:\rrs\routes и копируем его в RRSbuild/routes, аналогично поступаем с c:\rrs\fonts.

Запуск с учётом всех глюков:

cd RRSbuild/bin
PATH=`pwd`:$PATH LD_LIBRARY_PATH=`pwd`/../lib ./launcher

Если что-то пошло не так - смотрим логи в logs. В особенно тяжёлых случаях медитируем над strace.

Делать make install при такой неупорядоченности всего что только можно я постеснялся :)

Тикеты на решение хотя бы некоторых проблем #13 #14 #15

@SergeyDjam
Copy link

Собрал у себя OSG из мастера, теперь сборка падает с такой ошибкой:

&& make -f Makefile 
make[2]: вход в каталог «/mnt/cl/home/admin/rpmbuild/BUILD/RRS-1.0.1/viewer/osgdb_dmd»
g++ -c -O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -ffat-lto-objects -fno-delete-null-pointer-checks -fstack-protector --param=ssp-buffer-size=4 -fPIC -DPIC -fPIC -std=gnu++11 -Wall -W -fPIC  -I. -Iinclude -I/usr/lib64/qt5/mkspecs/linux-g++-64 -o dmd-parser.o src/dmd-parser.cpp
In file included from /usr/include/osg/Texture:20:0,
                 from /usr/include/osg/Camera:21,
                 from /usr/include/osg/View:17,
                 from /usr/include/osg/RenderInfo:18,
                 from /usr/include/osg/Drawable:21,
                 from include/dmd-mesh.h:5,
                 from include/dmd-parser.h:4,
                 from src/dmd-parser.cpp:1:
/usr/include/osg/GraphicsContext:150:26: ошибка: «Affinity» in namespace «OpenThreads» does not name a type
             OpenThreads::Affinity affinity;
                          ^
In file included from /usr/include/osg/View:17:0,
                 from /usr/include/osg/RenderInfo:18,
                 from /usr/include/osg/Drawable:21,
                 from include/dmd-mesh.h:5,
                 from include/dmd-parser.h:4,
                 from src/dmd-parser.cpp:1:
/usr/include/osg/Camera:545:54: ошибка: «Affinity» in namespace «OpenThreads» does not name a type
         void setProcessorAffinity(const OpenThreads::Affinity& affinity);
                                                      ^
/usr/include/osg/Camera:546:22: ошибка: «Affinity» in namespace «OpenThreads» does not name a type
         OpenThreads::Affinity& getProcessorAffinity() { return _affinity; }
                      ^
/usr/include/osg/Camera:547:28: ошибка: «Affinity» in namespace «OpenThreads» does not name a type
         const OpenThreads::Affinity& getProcessorAffinity() const { return _affinity; }
                            ^
/usr/include/osg/Camera:853:22: ошибка: «Affinity» in namespace «OpenThreads» does not name a type
         OpenThreads::Affinity               _affinity;
                      ^
make[2]: *** [Makefile:335: dmd-parser.o] Ошибка 1
make[2]: выход из каталога «/mnt/cl/home/admin/rpmbuild/BUILD/RRS-1.0.1/viewer/osgdb_dmd»
make[1]: *** [Makefile:49: sub-osgdb_dmd-make_first-ordered] Ошибка 2
make[1]: выход из каталога «/mnt/cl/home/admin/rpmbuild/BUILD/RRS-1.0.1/viewer»
make: *** [Makefile:796: sub-viewer-make_first-ordered] Ошибка 2

Не очень понимаю, как это пофиксить

@mehan-l
Copy link

mehan-l commented Oct 31, 2019

Всем доброго времени суток, не подскажите, как установить libqtbase5-dev, а то при попытке это сделать появляется Невозможно найти пакет libqtbase5-dev.

@einhander
Copy link

@mehan-l в дебиане это qtbase5-dev

@mehan-l
Copy link

mehan-l commented Nov 1, 2019

а в убунту?

@einhander
Copy link

@mehan-l в убунту пакет здесь https://lmgtfy.com/?q=qtbase5-dev+ubuntu&s=g&iie=1

@mehan-l
Copy link

mehan-l commented Nov 4, 2019

ок, спасибо

@rodinf
Copy link

rodinf commented Jan 3, 2020

Make вылетает с таким выводом:
Project ERROR: Unknown module(s) in QT: serialbus Makefile:711: recipe for target 'sub-modbus-make_first-ordered' failed make[1]: *** [sub-modbus-make_first-ordered] Error 3 make[1]: Leaving directory '/home/fedor/Desktop/rrs/rrsbuild/RRS/simulator' Makefile:368: recipe for target 'sub-simulator-make_first-ordered' failed make: *** [sub-simulator-make_first-ordered] Error 2

Как исправить?

@SergeyDjam
Copy link

v1.0.4
mv: cannot create regular file '/usr/lib64/osgPlugins-3.7.0/osgdb_dmd.so': Permission denied make[2]: [Makefile:186: /usr/lib64/osgPlugins-3.7.0/osgdb_dmd.so] Error 1 (ignored) make[2]: Leaving directory '/home/builder/rpmbuild/BUILD/RRS-1.0.4/build/viewer/osgdb_dmd' cd library/ && ( test -e Makefile || /usr/bin/qmake-qt5 -o Makefile /home/builder/rpmbuild/BUILD/RRS-1.0.4/viewer/library/library.pro libsuff=64 'QMAKE_CFLAGS=-O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -ffat-lto-objects -fno-delete-null-pointer-checks -fstack-protector --param=ssp-buffer-size=4 -fPIC -DPIC -fPIC' 'QMAKE_CXXFLAGS=-O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -ffat-lto-objects -fno-delete-null-pointer-checks -fstack-protector --param=ssp-buffer-size=4 -fPIC -DPIC -fPIC' QMAKE_CXXFLAGS_RELEASE= 'QMAKE_LFLAGS= -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -Wl,--hash-style=gnu' ) && /usr/bin/make -f Makefile make[2]: Entering directory '/home/builder/rpmbuild/BUILD/RRS-1.0.4/build/viewer/library' g++ -c -O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -ffat-lto-objects -fno-delete-null-pointer-checks -fstack-protector --param=ssp-buffer-size=4 -fPIC -DPIC -fPIC -std=gnu++11 -D_REENTRANT -Wall -W -fPIC -DLIBRARY_LIB -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I../../../viewer/library -I. -I../../../common-headers -I../../../filesystem/include -I../../../viewer/library/include -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++-64 -o library.o ../../../viewer/library/src/library.cpp rm -f liblibrary.so.1.0.0 liblibrary.so liblibrary.so.1 liblibrary.so.1.0 g++ -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -Wl,--hash-style=gnu -shared -Wl,-soname,liblibrary.so.1 -o liblibrary.so.1.0.0 library.o -L/usr/X11R6/lib64 -losg -losgDB -L../../../lib -lfilesystem -lQt5Gui -lQt5Core -lGL -lpthread library.o: In function Library::load()':
/home/builder/rpmbuild/BUILD/RRS-1.0.4/build/viewer/library/../../../viewer/library/src/library.cpp:54: undefined reference to dlopen' library.o: In function Library::resolve(std::__cxx11::basic_string<char, std::char_traits, std::allocator >)':
/home/builder/rpmbuild/BUILD/RRS-1.0.4/build/viewer/library/../../../viewer/library/src/library.cpp:77: undefined reference to `dlsym'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:189: ../../../lib/liblibrary.so.1.0.0] Error 1
make[2]: Leaving directory '/home/builder/rpmbuild/BUILD/RRS-1.0.4/build/viewer/library'
make[1]: *** [Makefile:92: sub-library-make_first-ordered] Error 2
make[1]: Leaving directory '/home/builder/rpmbuild/BUILD/RRS-1.0.4/build/viewer'
make: *** [Makefile:928: sub-viewer-make_first-ordered] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.99930 (%build)

RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.99930 (%build)
`
и снова проблема

@SergeyDjam
Copy link

v1.0.6 все также проблема сборки под Linux

@svofski
Copy link

svofski commented Jan 16, 2021

В рецепте @shurshur на Linux Mint мне для полного успеха не хватило:
apt install libqt5serialbus5-dev libqt5serialport5-dev

@SergeyDjam
Copy link

Можно упаковать в appimage чтобы не заморачиваться со сборкой на зоопарке дистрибутивов. Пользователи ленивы, собирать из сырцов будет 1 из 10.

я пытаюсь собрать, да не выходит

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants