I am new to ARM
I would like to cross-compile a simple Hello world c++ code for Linux distribution in order to debug and run it on my Hardkernel ODROID-XU4 board. For this purpose I'm following this tutorial https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio/resources/tutorials/linux-application-debugging-using-ds-5, however, instead of using the built-in compiler, I have downloaded the latest linaro gcc toolchain from this page https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads, I have windows 7 sp1. when I followed the steps mentioned in the tutorial, when I buit the project I encountered the following errors
11:32:29 **** Incremental Build of configuration Debug for project Hello_world_cpp **** make all 'Building file: ../Hello_wolrd.cpp' 'Invoking: GCC C++ Compiler 8.3.0 [arm-eabi]' arm-eabi-g++.exe -mfpu=vfpv4 -O0 -g -Wall -marm -mfloat-abi=hard -MMD -MP -MF"Hello_wolrd.d" -MT"Hello_wolrd.o" -c -o "Hello_wolrd.o" "../Hello_wolrd.cpp" 'Finished building: ../Hello_wolrd.cpp' ' ' 'Building target: Hello_world_cpp.axf' 'Invoking: GCC C++ Linker 8.3.0 [arm-eabi]' arm-eabi-g++.exe -o "Hello_world_cpp.axf" ./Hello_wolrd.o e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: error: ./Hello_wolrd.o uses VFP register arguments, Hello_world_cpp.axf does not e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: failed to merge target specific data of file ./Hello_wolrd.o e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-exit.o): in function `exit': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/stdlib/exit.c:64: undefined reference to `_exit' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-abort.o): in function `abort': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/stdlib/abort.c:59: undefined reference to `_exit' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-signalr.o): in function `_kill_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/signalr.c:53: undefined reference to `_kill' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-signalr.o): in function `_getpid_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/signalr.c:83: undefined reference to `_getpid' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-sbrkr.o): in function `_sbrk_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/sbrkr.c:51: undefined reference to `_sbrk' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-writer.o): in function `_write_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/writer.c:49: undefined reference to `_write' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-closer.o): in function `_close_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/closer.c:47: undefined reference to `_close' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-lseekr.o): in function `_lseek_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/lseekr.c:49: undefined reference to `_lseek' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-readr.o): in function `_read_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/readr.c:49: undefined reference to `_read' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-fstatr.o): in function `_fstat_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/fstatr.c:55: undefined reference to `_fstat' e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0/../../../../arm-eabi/bin/ld.exe: e:/programs/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/gcc-arm-8.3-2019.03-i686-mingw32-arm-eabi/bin/../lib/gcc/arm-eabi/8.3.0\libc.a(lib_a-isattyr.o): in function `_isatty_r': /tmp/dgboter/bbs/dsggnu-vm-1-x86_64--mingw32-i686/buildbot/mingw32-i686--arm-eabi/build/src/newlib-cygwin/newlib/libc/reent/isattyr.c:52: undefined reference to `_isatty' collect2.exe: error: ld returned 1 exit status make: *** [makefile:46: Hello_world_cpp.axf] Error 1 11:32:31 Build Finished (took 1s.705ms)
How can solve this problem and build the program correctly and are the flages I'm using during compilation correct ?
Thanks for the answer, Actually I have figured that what you mentioned and switched to gcc arm-linux-gnueabihf 7.4.1. when I tried to build a simple c++ hello application to debug it on an ARM Linux target. I got the following error
19:10:30 **** Incremental Build of configuration Debug for project My_cpp_tutorial **** make all 'Building file: ../HelloWorld/My_cpp_tutorial.cpp' 'Invoking: GCC C++ Compiler 7.4.1 [arm-linux-gnueabihf]' arm-linux-gnueabihf-g++.exe -I"E:\programs\gcc-linaro-7.4.1-2019.02-i686-mingw32_arm-linux-gnueabihf\gcc-linaro-7.4.1-2019.02-i686-mingw32_arm-linux-gnueabihf\arm-linux-gnueabihf\include\c++\7.4.1\arm-linux-gnueabihf" -I"E:\programs\gcc-linaro-7.4.1-2019.02-i686-mingw32_arm-linux-gnueabihf\gcc-linaro-7.4.1-2019.02-i686-mingw32_arm-linux-gnueabihf\arm-linux-gnueabihf\include\c++\7.4.1\arm-linux-gnueabihf\" -O0 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"HelloWorld/My_cpp_tutorial.d" -MT"HelloWorld/My_cpp_tutorial.o" -o "HelloWorld/My_cpp_tutorial.o" "../HelloWorld/My_cpp_tutorial.cpp" arm-linux-gnueabihf-g++.exe: fatal error: no input files compilation terminated. make: *** [HelloWorld/subdir.mk:20: HelloWorld/My_cpp_tutorial.o] Error 1 19:10:31 Build Finished (took 432ms)
What can I do, to resolve this error ?