my cross compiler has error.tslib install but has error
-
@jsulm :yes, I change .pro and and run qmake and then make command. the error is in the picture
@SGaist I want to run another new ubuntu to install of them from the first. all of the things need /usr/ directory should come with sudo command. so my compiler install with sudo command. I decide to do all steps again with new ubuntu. (this is my 3rd ubuntu :D ) I wish I can -
git@ubuntu:~/helloqt$ make arm-linux-g++ -Wl,-rpath-link,/tmp/FriendlyARM/nanopi2/libs/usr/lib -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.8.6-arm/lib -o helloqt main.o -L/tmp/FriendlyARM/nanopi2/libs/usr/lib -L/usr/local/Trolltech/QtEmbedded-4.8.6-arm/lib -L/home/fgit/libts/lib -ltslib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.8.6-arm/lib -L/tmp/FriendlyARM/nanopi2/libs/usr/lib -lQtNetwork -lQtCore -lpthread /home/fgit/libts/libts.so:file not recognized:File format not recognized collect2: error: ld returned 1 exit status Makefile:103: recipe for target 'helloqt' failed make: *** [helloqt] Error 1
that is the error. when I extract the zip file they placed in /usr/local/ directory. I can not change the directory. This toolchain is https://www.mediafire.com/folder/ilkcy37otd7il/NanoPi2Board#a0l72ygtz0797 that I download and install it
-
What does
file libts.so
return ? -
fgit@ubuntu:~$ file ~/libts/lib/libts.so /home/fgit/libts/lib/libts.so: symbolic link to libts.so.0.7.0 fgit@ubuntu:~$ file ~/libts/lib/libts.so.0.7.0 /home/fgit/libts/lib/libts.so.0.7.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a6de3ac1d75c3420a9ecfb7bd34a42bda7524169, not stripped fgit@ubuntu:~$
-
fgit@ubuntu:~$ file ~/libts/lib/libts.so /home/fgit/libts/lib/libts.so: symbolic link to libts.so.0.7.0 fgit@ubuntu:~$ file ~/libts/lib/libts.so.0.7.0 /home/fgit/libts/lib/libts.so.0.7.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a6de3ac1d75c3420a9ecfb7bd34a42bda7524169, not stripped fgit@ubuntu:~$
-
but I do this with my compiler path
export PATH=/usr/local/arm/4.7.0/bin:$PATH export CROSS_COMPILE=arm-none-linux-gnueabi- export CC=${CROSS_COMPILE}gcc export CFLAGS=-march=armv7l export CXX=${CROSS_COMPILE}"g++" export AR=${CROSS_COMPILE}"ar" export AS=${CROSS_COMPILE}"as" export RANLIB=${CROSS_COMPILE}"ranlib" export LD=${CROSS_COMPILE}"ld" export STRIP=${CROSS_COMPILE}"strip" export ac_cv_func_malloc_0_nonnull=yes
-
Check the configure script options. There's something like
--host=arm-none-linux-gnueabi
IIRC. -
really thanksssssssssssssssssssssssssss
It compile without error with this command, at last.sudo ./configure --host=arm-none-linux-gnueabihf --prefix=/home/tslib --enable-shared=yes --enable-static=no
but when I copy the exe file to my arm device it again show me this error:
root@NanoPC-T2:/# tftp 192.168.101.4 tftp> get helloqt Received 11692 bytes in 0.4 seconds tftp> quit root@NanoPC-T2:/# . setqt4env ctp = 1 root@NanoPC-T2:/# chmod +x helloqt root@NanoPC-T2:/# ./helloqt -qws & [1] 1409 root@NanoPC-T2:/# ./helloqt -qws [1]+ Segmentation fault ./helloqt -qws Segmentation fault root@NanoPC-T2:/# ldd ./helloqt not a dynamic executable root@NanoPC-T2:/# file ./helloqt ./helloqt: ERROR: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3 error reading (Invalid argument)
-
really thanksssssssssssssssssssssssssss
It compile without error with this command, at last.sudo ./configure --host=arm-none-linux-gnueabihf --prefix=/home/tslib --enable-shared=yes --enable-static=no
but when I copy the exe file to my arm device it again show me this error:
root@NanoPC-T2:/# tftp 192.168.101.4 tftp> get helloqt Received 11692 bytes in 0.4 seconds tftp> quit root@NanoPC-T2:/# . setqt4env ctp = 1 root@NanoPC-T2:/# chmod +x helloqt root@NanoPC-T2:/# ./helloqt -qws & [1] 1409 root@NanoPC-T2:/# ./helloqt -qws [1]+ Segmentation fault ./helloqt -qws Segmentation fault root@NanoPC-T2:/# ldd ./helloqt not a dynamic executable root@NanoPC-T2:/# file ./helloqt ./helloqt: ERROR: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3 error reading (Invalid argument)
@MhM93 said in my cross compiler has error.tslib install but has error:
[1]+ Segmentation fault ./helloqt -qws
This is another problem. Try to start your app in a debugger to see what happens.
Also why do you start it twice:root@NanoPC-T2:/# ./helloqt -qws & [1] 1409 root@NanoPC-T2:/# ./helloqt -qws
?
-
I do not install qt creator to see debug mood in my pc, and also this program is run on nanopc-t2 when I wrote this command it returns :
root@NanoPC-T2:/# strace ./helloqt execve("./helloqt", ["./helloqt"], [/* 20 vars */]) = 0 brk(NULL) = 0x21000 uname({sysname="Linux", nodename="NanoPC-T2", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f67000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x4} --- +++ killed by SIGSEGV +++ Segmentation fault
Also why do you start it twice:
with silly reason. I just test what happen to run command with & and without it. :) -
I do not install qt creator to see debug mood in my pc, and also this program is run on nanopc-t2 when I wrote this command it returns :
root@NanoPC-T2:/# strace ./helloqt execve("./helloqt", ["./helloqt"], [/* 20 vars */]) = 0 brk(NULL) = 0x21000 uname({sysname="Linux", nodename="NanoPC-T2", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f67000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x4} --- +++ killed by SIGSEGV +++ Segmentation fault
Also why do you start it twice:
with silly reason. I just test what happen to run command with & and without it. :)@MhM93 You don't need to install QtCreator to debug (QtCreator itself does not have a debugger). Just install gdb on your target device and use it. It looks like your app is running except you try to run two instances at the same time.
-
I do not install qt creator to see debug mood in my pc, and also this program is run on nanopc-t2 when I wrote this command it returns :
root@NanoPC-T2:/# strace ./helloqt execve("./helloqt", ["./helloqt"], [/* 20 vars */]) = 0 brk(NULL) = 0x21000 uname({sysname="Linux", nodename="NanoPC-T2", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f67000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x4} --- +++ killed by SIGSEGV +++ Segmentation fault
Also why do you start it twice:
with silly reason. I just test what happen to run command with & and without it. :) -
thanks for reply. but i just play one application.
oot@NanoPC-T2:/# rm helloqt
root@NanoPC-T2:/# tftp 192.168.101.4
tftp> get helloqt
Received 11692 bytes in 0.5 seconds
tftp> quit
root@NanoPC-T2:/# chmod +x helloqt
root@NanoPC-T2:/# ./helloqt -qws
Segmentation fault
root@NanoPC-T2:/# file ./helloqt
./helloqt: ERROR: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3 error reading (Invalid argument)
root@NanoPC-T2:/# -
Again, run it through the debugger.
By the way, what is the exact architecture of your device ?
What Linux distribution are you running on it ? -
thanks for reply,
I should install debugger on my host or on my target?
this is my device:root@NanoPC-T2:/# uname -a Linux NanoPC-T2 3.4.39-s5p4418 #1 SMP PREEMPT Wed Mar 1 13:21:10 HKT 2017 armv7l armv7l armv7l GNU/Linux
when I run gdb on my device (nanopc-t2):
root@NanoPC-T2:/# gdb -q helloqt "/helloqt": not in executable format: File truncated
and also when I run this:
root@NanoPC-T2:/# sudo readelf -a ./helloqt | grep NEEDED readelf: Error: Reading 0x618 bytes extends past end of file for section headers readelf: Error: Section headers are not available! 0x00000001 (NEEDED)
Is that mean my header is wrong?
this is my code:#include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button ("Hello world !"); button.show(); return app.exec(); }
-
Looks like there is a problem with your file. How are you copying it over to your device ?
-
*I copy it by tftp. First I copy it from ubuntu vmware to windows then wrote this command to copy it to my device:
tftp 192.168.101.4 tftp>get helloqt //after transfering..... tftp>quit
first run this command
. setqt4env
and after that run this command, I make my file runable with this command:
chmod +x helloqt
then I run it with this command but that error show to me:
./helloqt -qws
................................................................................................................................................................................
FINALLY RUN MY APP ON ME DEVICE BUT MAKE A LOT OF QUESTION FOR ME:
.............................................................................................................................................................................
I set my ssh to deploy the qt (from vmware ubuntu to my nanopc) also set this to .pro file:#------------------------------------------------- # # Project created by QtCreator 2017-05-13T01:48:28 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets target.path = ~/helloqt INSTALLS += target TARGET = TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
and set -qws in argument and suddenly see the project run on my device BUT the touch is not worked
when I copy the file to my device as I said above* the app is can not run. what is the different from my code runable and qt runable app? -
Why don't you upload it directly to your device ?
Using e.g. scp ? -
@MhM93 Why don't you use Google?
First match there for "scp" is: https://en.wikipedia.org/wiki/Secure_copy