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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-06-01 11:58:37

  diabolic - Użytkownik

diabolic
Użytkownik
Skąd: okolice Leżajska
Zarejestrowany: 2007-10-08

Kompilacja Qt X11 arm

Próbuję ostatnio skomilować qt X11 pod architekturę arm , niestety zawsze konfigurecja kończy się błędem. Skopiowałem do siebie na komputer katalogi

Kod:

/usr/lib

oraz

Kod:

/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:

Kod:

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:

Kod:

#
# 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:

Kod:

 ./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.


I am the one who chose my path

Offline

 

#2  2012-06-01 12:14:35

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: Kompilacja Qt X11 arm

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

 

#3  2012-06-01 12:29:58

  diabolic - Użytkownik

diabolic
Użytkownik
Skąd: okolice Leżajska
Zarejestrowany: 2007-10-08

Re: Kompilacja Qt X11 arm

Sorry widocznie nie dopisałem chodziło mi o cross kompilację na docelowa architekturę arm.


I am the one who chose my path

Offline

 

#4  2012-06-04 20:52:58

  diabolic - Użytkownik

diabolic
Użytkownik
Skąd: okolice Leżajska
Zarejestrowany: 2007-10-08

Re: Kompilacja Qt X11 arm

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ć:

Kod:

#
# 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:

Kod:

/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)


I am the one who chose my path

Offline

 

#5  2012-06-05 09:46:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Kompilacja Qt X11 arm

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

Kod:

/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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2012-06-05 14:17:11

  diabolic - Użytkownik

diabolic
Użytkownik
Skąd: okolice Leżajska
Zarejestrowany: 2007-10-08

Re: Kompilacja Qt X11 arm

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

Kod:

/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

Kod:

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:

Kod:

./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)


I am the one who chose my path

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)