my cross compiler has error.tslib install but has error
-
when I did not use sudo this error display:
fgit@ubuntu:~/tslib$ ./configure --host=arm-linux --prefix=/home/fgit/libts --enable- shared=yes --enable-static=no checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-linux-strip... arm-none-linux-gnueabihf-strip checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking build system type... x86_64-pc-linux-gnu checking host system type... arm-unknown-linux-gnu checking for arm-linux-gcc... arm-none-linux-gnueabihf-gcc checking whether the C compiler works... no configure: error: in `/home/fgit/tslib': configure: error: C compiler cannot create executables See `config.log' for more details
I dont know why?
I use that lib in my .pro file###################################################################### # Automatically generated by qmake (2.01a) Wed May 10 21:39:17 2017 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . LIBS += -L/home/fgit/libts/lib -ltslib # Input SOURCES += main.cpp
this error
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 /opt/FriendlyARM/toolchain/4.9.3/lib/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/../../../../arm-cortexa9-linux-gnueabihf/bin/ld.bfd: cannot find -ltslib collect2: error: ld returned 1 exit status Makefile:103: recipe for target 'helloqt' failed make: *** [helloqt] Error 1
I change .pro to this and this is the error:
###################################################################### # Automatically generated by qmake (2.01a) Wed May 10 21:39:17 2017 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . LIBS += -L/home/fgit/libts/lib -lts # Input SOURCES += main.cpp
-
Then there's something messed up with your cross-compiler installation. You shouldn't need to be root to cross-compile.
First thing ensure that you are doing that from a clean state. Then check the complete log as to why the configure script can't use the cross-compiler properly.
-
when I did not use sudo this error display:
fgit@ubuntu:~/tslib$ ./configure --host=arm-linux --prefix=/home/fgit/libts --enable- shared=yes --enable-static=no checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-linux-strip... arm-none-linux-gnueabihf-strip checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking build system type... x86_64-pc-linux-gnu checking host system type... arm-unknown-linux-gnu checking for arm-linux-gcc... arm-none-linux-gnueabihf-gcc checking whether the C compiler works... no configure: error: in `/home/fgit/tslib': configure: error: C compiler cannot create executables See `config.log' for more details
I dont know why?
I use that lib in my .pro file###################################################################### # Automatically generated by qmake (2.01a) Wed May 10 21:39:17 2017 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . LIBS += -L/home/fgit/libts/lib -ltslib # Input SOURCES += main.cpp
this error
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 /opt/FriendlyARM/toolchain/4.9.3/lib/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/../../../../arm-cortexa9-linux-gnueabihf/bin/ld.bfd: cannot find -ltslib collect2: error: ld returned 1 exit status Makefile:103: recipe for target 'helloqt' failed make: *** [helloqt] Error 1
I change .pro to this and this is the error:
###################################################################### # Automatically generated by qmake (2.01a) Wed May 10 21:39:17 2017 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . LIBS += -L/home/fgit/libts/lib -lts # Input SOURCES += main.cpp
@MhM93 said in my cross compiler has error.tslib install but has error:
I change .pro to this and this is the error:
What is the error?
Did you rerun qmake after changing the pro file? -
@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 -
@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 ?