LINUX.ORG.RU

Но зачем когда есть drm kms.

anonymous
()

тред не читал, но

#apt-get install build-essential

Deleted
()
Ответ на: комментарий от Deleted

Пошло, но требует fluxcomp

configure: error: 
*** DirectFB compilation requires fluxcomp ***

Unless you are compiling from a distributed tarball you need fluxcomp
available from git://git.directfb.org/git/directfb/core/flux installed
in your PATH.

По той ссылке не открывается, как его установить, через apt-get install fluxcomp не находит.

alex841
() автор топика
Ответ на: комментарий от EXL

Мне надо одну прогу отладить, которая использует directfb, чтобы ее отладить нормально, надо установить этот directfb.

alex841
() автор топика
Ответ на: комментарий от anonymous

Эмулятор qemu вполне подходит. Нужно на него собрать эту библиотеку. Думаю кросс-компилятором собрать.

alex841
() автор топика

Вот это включи, репозитории обнови, выполни:

sudo apt-get build-dep directfb

и:

mkdir directfb-build && cd directfb-build
apt-get -b source directfb
anonymous
()
Ответ на: комментарий от alex841

Ясно, понятно.

Пробуй собрать так:

mkdir dfb_{build,install}/
cd dfb_build/
git clone https://github.com/DirectFB/directfb --depth=1 -b master
sed -i '/#include <string>/a #include <functional>' directfb/lib/direct/Base.h
git clone https://github.com/Distrotech/flux --depth=1 -b master
cd flux/
./autogen.sh
./configure
make -j4
cd ../directfb/
PATH=`pwd`/../flux/src:$PATH ./autogen.sh
PATH=`pwd`/../flux/src:$PATH ./configure
make -j4
make DESTDIR=`pwd`/../../dfb_install/ install

Кросс-компилятором аналогично сделать, только скрипту ./configure скормить параметр --host=arm-linux-gnueabi или необходимый под твоё железо.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Попробую твой скрипт. На данный момент удалось собрать directfb после сборки flux и указания в PATH пути к его бинарникам скомпиленным. А для кросс-компиляции мне не нужно руками еще собирать все зависимости вроде libpng-dev и так далее под арм или, если указать в configure мой кросс-компилятор, он сам выкачает зависимости и тоже соберет их под арм ?

alex841
() автор топика
Ответ на: комментарий от alex841

Нет, не выкачает, всё надо делать ручками. Либо в самом QEMU развернуть arm-дистрибутив Linux'а, выкачать нужные пакеты и собрать там directfb, этим же скриптом.

EXL ★★★★★
()
Ответ на: комментарий от EXL

В самом qemu это довольно сложно получается делать, у меня там минимальная файловая система busybox. Там нужно собирать кучу всего типа make,gcc,autoconf, чтобы там собрать. Думаю на дебиан кросс-компилятором все зависимости собирать и саму дирексфб и туда в qemu-system-arm потом перетащить либы собранные.

alex841
() автор топика
Ответ на: комментарий от EXL

Вот чет не компилит с помощью кросс-компилятора похоже CPP сорцы, на них чет валит ошибки.

make[4]: вход в каталог «/home/user/directfb/lib/direct»
  CXX      Base.lo
In file included from ../../lib/direct/Map.h:52,
                 from ../../lib/direct/Base.h:50,
                 from Base.cpp:42:
../../lib/direct/Utils.h: In constructor 'Direct::TypeID<_T>::TypeID()':
../../lib/direct/Utils.h:101: error: class 'Direct::TypeID<_T>' does not have any field named 'ToString'
In file included from Base.cpp:42:
../../lib/direct/Base.h: In static member function 'static std::map<std::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void*>, _Function, std::less<std::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void*> >, std::allocator<std::pair<const std::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void*>, _Function> > > Direct::Mapping::Map(const Direct::String&, void*)':
../../lib/direct/Base.h:168: error: ISO C++ forbids declaration of 'e' with no type
../../lib/direct/Base.h:169: error: invalid type argument of 'unary *'
../../lib/direct/Base.h:169: error: invalid type argument of 'unary *'
../../lib/direct/Base.h:172: error: invalid type argument of 'unary *'
../../lib/direct/Base.h: In static member function 'static void Direct::Mapping::Dispatch(const Direct::String&, void*)':
../../lib/direct/Base.h:184: error: ISO C++ forbids declaration of 'map' with no type
../../lib/direct/Base.h:188: error: ISO C++ forbids declaration of 'f' with no type
../../lib/direct/Base.h:188: error: request for member 'begin' in 'map', which is of non-class type 'int'
../../lib/direct/Base.h:188: error: request for member 'end' in 'map', which is of non-class type 'int'
../../lib/direct/Base.h:195: error: invalid type argument of 'unary *'

Как тут поправить ? Я указал в PATH путь к bin в моем кросс-компилере.

alex841
() автор топика
Ответ на: комментарий от alex841

Добавил опцию -E

export CXX="arm-unknown-linux-gnu-g++ -E"
Дальше пошел компилить, но теперь падает с такой ошибкой.
/home/user/flux/src/fluxcomp -i --include-prefix=core --call-mode --object-ptrs --static-args-bytes=FLUXED_ARGS_BYTES --dispatch-error-abort CoreDFB.flux
/bin/bash: /home/user/flux/src/fluxcomp: не удаётся запустить бинарный файл: Ошибка формата выполняемого файла

Я собирал fluxcomp тоже кросс-компилятором под арм проц. Я так понял этот fluxcomp надо было обычным собирать под х86 ? Просто его почему-то пытаются там выполнить во время выполнения make.

alex841
() автор топика
Ответ на: комментарий от alex841

Добавил опцию -E

Для чего? Это же просто препроцессор без компиляции. Попробуй лучше скомпилировать с флажком -std=c++0x или -std=c++11.

Я собирал fluxcomp тоже кросс-компилятором под арм проц. Я так понял этот fluxcomp надо было обычным собирать под х86 ?

Да, fluxcomp оставь скомпилированный под хостовую архитектуру.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.