Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: uCLinux + FLTK
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Novichok1
Доброго времени суток!

Стоит задача - собрать GUI под uCLinux, в качестве GUI решили выбрать FLTK. С компиляцей uCLinux особых проблем не было, все скомпилировалось, прошилось, заработало. На ubuntu FLTK также хорошо скомпилировалось, устанавливалось и заработало, проблемы возникли, когда захотелось собрать FLTK под uCLinux. Дело в том, что uCLinux понимает только формат файлов FLAT, который получается из обычного elf утилитой elf2flt. Пробовал несколько тулчэйнов, и вот результаты работы двух из них: arm-linux и arm-elf. Причем, сам FLTK собирается, не собираются примеры для него.

Так вот, если собирать FLTK с помошью arm-linux, то не получиться скомпилировать примеры, так как elf2flt пишет, что у него проблемы с секцией plt. Кстати так он ругается даже на пустой HelloWorld, не использующий FLTK.

Код
arm-linux-g++ -I.. -I.. -I../png -I../zlib -I../jpeg -I/usr/local/arm-linux/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT -Wall -I. -c a1.cxx -o a1.o
*** Linking a1...
arm-linux-g++ a1.o -Wl,-elf2flt -o a1 -L/usr/local/arm-linux/lib ../lib/libfltk.a -lpthread -lm /usr/local/arm-linux/lib/libNX11.a /usr/local/arm-linux/lib/libnano-X.a
/usr/local/lib/gcc/arm-linux/3.4.4/../../../../arm-linux/bin/ld.real: error: no memory region specified for loadable section `.plt'
collect2: ld returned 1 exit status
make: *** [a1] Error 1


А если собирать с помощью arm-elf тогда при линковке он не может найти функции из библиотеке FLTK, хотя все пути прописаны.

Код
*** Compile a1.cxx...
arm-elf-g++ -I.. -I.. -I../png -I../jpeg -I/usr/local/arm-elf/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT -Wall -I. -c a1.cxx -o a1.o
*** Linking a1...
arm-elf-g++ a1.o -Wl,-elf2flt -o a1 -L/usr/local/arm-elf/lib ../lib/libfltk.a -lpthread -lm /usr/local/arm-elf/lib/libNX11.a /usr/local/arm-elf/lib/libfltk_forms.a /usr/local/arm-elf/lib/libfltk_images.a /usr/local/arm-elf/lib/libfltk_jpeg.a /usr/local/arm-elf/lib/libfltk_png.a /usr/local/arm-elf/lib/libnano-X.a
a1.elf2flt(.text+0x5c): In function `main':
: undefined reference to `Fl_Window::Fl_Window(int, int, char const *)'
a1.elf2flt(.text+0xb0): In function `main':
: undefined reference to `Fl_Window::~Fl_Window(void)'
a1.elf2flt(.text+0xc4): In function `main':
: undefined reference to `Fl_Window::~Fl_Window(void)'
collect2: ld returned 1 exit status
make: *** [a1] Error 1


Сейчас я в замешательстве - не помойму как скомпилировать примеры FLTK в связке с uClinux и nano-X? Может кто подскажет что делаю не так, или даст ссылку на правильный toolchain?
sasamy
Цитата(Novichok1 @ Sep 25 2011, 15:26) *
проблемы возникли, когда захотелось собрать FLTK под uCLinux.


Гугл говорит чтобы собрать fltk с nanox и примерами - достаточно поставить галку
https://docs.blackfin.uclinux.org/doku.php?...st:microwindows
Johny
Неплохо бы уточнить, под какую аппаратную платформу собираете.
Как понял из Вашего поста - все таки под ARM? Какой процессор, может готовую evaluation board используете? Без этого, думаю, трудно будет давать совет по выбору toolchain.
Если не находит функции в библиотеках, хотя пути прописаны, возможно библиотеки не того формата?
IgorKossak
Попробуйте этим. Там среди таргетов как раз есть uCLinux.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.