Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Próbuję ostatnio skomilować qt X11 pod architekturę arm , niestety zawsze konfigurecja kończy się błędem. Skopiowałem do siebie na komputer katalogi
/usr/lib
oraz
/usr/include
z systemu docelowego ( na którym to zostały zainstalowane praktycznie wszystkie pakiety dotyczące X11), potrzebne do kompilacji qt w pliku qmake.conf oczywiście podałem do nich ścieżki niestety za każdym razem dostaję błąd typu:
Basic XLib functionality test failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/tomasz/tegra_qt/qt-everywhere-opensource-src-4.8.2/mkspecs/linux-arm-gnueabi-g++
Plik qmake.conf:
# # qmake configuration for building with arm-linux-gnueabi-g++ # MAKEFILE_GENERATOR = UNIX TARGET_PLATFORM = unix TEMPLATE = app CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index QT += core gui QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-gcc QMAKE_CXX = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-g++ QMAKE_LINK = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-g++ QMAKE_LINK_SHLIB = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-ar cqs QMAKE_OBJCOPY = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-objcopy QMAKE_STRIP = ~/tegra_qt/arm-2009q3/bin/arm-linux-gnueabi-strip QMAKE_INCDIR_X11 = ~/tegra_qt/include/X11 QMAKE_LIBDIR_X11 = ~/tegra_qt/lib QMAKE_INCDIR = ~/tegra_qt/include QMAKE_LIBDIR = ~/tegra_qt/lib load(qt_config)
configure uruchamiam z opcjami:
./configure -arch arm -xplatform linux-arm-gnueabi-g++ -prefix /usr/local/qt4.8.2_tegraX11 -nomake demos -nomake examples
Ma ktoś może jakiś sprawdzony sposób na kompilację qt X11 pod tą architekturę? Lub tez przechodził przez ten etap? Dodam, że google już dość głęboko przekopałem, i w sumie to cały czas wyświetla to samo co przedstawiłem tutaj.
Offline
Może ja czegoś nie rozumiem… Ale czemu nie możesz z repozytorium zainstalować? Druga sprawa, że architektura arm ostatnio była w Lennym (równolegle z armel), a od Squeeze została już tylko armel. Nie może być armel? Jaka to wersja Debiana?
Offline
Sorry widocznie nie dopisałem chodziło mi o cross kompilację na docelowa architekturę arm.
Offline
Trochę się uporałem i wreszcie zauważyłem dość laicki błąd otóż miałem wpisane źle ścieżki kompilatorów ;/, aż dziwne że zrobiłem taki prostacki błąd.
teraz qmake.conf ma postać:
# # qmake configuration for building with arm-linux-gnueabi-g++ # MAKEFILE_GENERATOR = UNIX TARGET_PLATFORM = unix TEMPLATE = app CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index QT += core gui network opengl svg xmlpatterns xml QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-gcc QMAKE_CXX = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK_SHLIB = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-ar cqs QMAKE_OBJCOPY = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-objcopy QMAKE_STRIP = /home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-strip QMAKE_INCDIR_X11 = /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/include QMAKE_LIBDIR_X11 = /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib load(qt_config)
Z tym że teraz dostaję inne błędy , że nie znajduje paru bibliotek, pomimo tego, że są one w dołączonych katalogach, i przez configure wypluwa błędy:
/home/tomek/usr/arm-2009q3/bin/arm-none-linux-gnueabi-g++ -Wl,-O1 -o xlib xlib.o -L/home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/lib -L/home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib -lXext -lX11 -lm /home/tomek/usr/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libxcb.so.1, needed by /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libXext.so, not found (try using -rpath or -rpath-link) /home/tomek/usr/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libpthread-stubs.so.0, needed by /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libXext.so, not found (try using -rpath or -rpath-link) /home/tomek/usr/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libXau.so.6, needed by /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libXext.so, not found (try using -rpath or -rpath-link) /home/tomek/usr/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libXdmcp.so.6, needed by /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libXext.so, not found (try using -rpath or -rpath-link) /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_connection_has_error' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_poll_for_reply' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_get_maximum_request_length' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_get_file_descriptor' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_connect' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_wait_for_reply' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_get_setup' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_wait_for_event' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_poll_for_event' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_parse_display' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_generate_id' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_disconnect' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_take_socket' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_writev' /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libX11.so: undefined reference to `xcb_connect_to_display_with_auth_info' collect2: ld returned 1 exit status make: *** [xlib] Błąd 1 XLib disabled. Basic XLib functionality test failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/tomek/qt-everywhere-opensource-src-4.8.2/mkspecs/linux-arm-gnueabi-g++.
Ma ktoś jakiś pomysł jak sobie z tym poradzić?
Ostatnio edytowany przez diabolic (2012-06-04 20:53:41)
Offline
Robisz paczki do Debianan, czy chodzi tylko o instalację jednej kopii?
Bo jakbyś chciał się pobawić Gentoo, to qt-core jest na takie architektury:
KEYWORDS="amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
Co do błędu przy kompilacji, zdaża się, częsty przy źródlach z git/svn.
Scieżki radziłbym typowo Linuxowe, czyli /usr/lib, /usr/include, itp.
Czyli prefix /usr, lub /usr/local.
Tam są domyślnie programy instalowane (przy kompilacji z palca /usr/local), i być może kompilator czegoś nie może zrobić/znaleźć z powodu nietypowej ścieżki.
Wlłaściwie nie być może a na pewno, grzecznie zawiadomił:
/home/tomek/usr/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libXdmcp.so.6, needed by /home/tomek/angstrom/usr/local/angstrom/arm-angstrom-linux-gnueabi/usr/lib/libXext.so, not found (try using -rpath or -rpath-link)
Masz tam kilka podobnych kfiatków.
Prawdopodobnie brakuje też plików nagłówkowych do tych bibliotek - czyli paczek z rozszerzeniem *.dev (w Debianie)
Zazwyczaj takie źródła wystarczy wypakować w
/usr/local/src/
i kompilator sam sobie radzi, bez majstrowania ze scieżkami w konfigu.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-06-05 09:55:23)
Offline
No tak tylko tych standardowych ścieżek nie mogę dać, ponieważ te biblioteki pochodzą z sytemu docelowego (architektura arm) i to do nich trzeba robić dowiązania, a nie do tych z systemu na którym to kompiluję (x86), chyba że ja czegoś nie rozumiem, jak tak to mógłbyś sprecyzować o co ci dokładnie chodzi? Próbowałem też robić z katalogiem
/usr/local/src
ale to samo było. Druga sprawa odnośnie gentoo to akurat mam możliwość kopsnąć kompilację na nim. Zastanawia mnie jednak jedna kwestia, jakie będa wyniki kompilacji. Gdyż w przypadku tej kompilacji biblioteki będą dedykowane dla architektury arm, zaś narzędzia do kompilacji programu docelowego pod architekturę x86, a sam program docelowy też pod arm. Jakbyś mnie mógł oświecić w tej kwestii coś więcej ;).
Edytka:
Wreszcie udało mi się skompilować qt, zrobiłem to trochę "chamskim sposobem", ponieważ przekopiowałem te trzy biblioteki o które krzyczał do katalogu lib w toolchainie z którego korzystam, i konfiguracja poszła dalej. Później tylko kompilator krzyczał, że nie może znaleźć biblioteki
libpthread.so
co dziwniejsze była ona w bibliotekach dołączonych do toolchaina, lecz gryzła się z tą z katalogu bibliotek które dołączałem do kompilacji, po jej wywaleniu wszystko się skompilowało.
Kompilacja programu też przeszła z tymi bibliotekami, lecz w przypadku próby jego uruchomienia na docelowym sprzęcie (arm) i wcześniejszym przekopiowaniu skompilowanego wcześniej qt wywala błąd:
./proba: error while loading shared libraries: /usr/local/qt4.8.2_tegraX11/lib/libQtGui.so.4: unexpected reloc type 0x03
Szukałem w googlach ale nic ciekawego nie było ;(
Ostatnio edytowany przez diabolic (2012-06-06 14:26:13)
Offline