是由 Linaro 公司基于GCC推出的的ARM交叉编譯的工具
cross compiler前,最好先確認目標板子的interpreter是什麼~
$ file hello
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=97943e1e425eadf112294e3fd26d10c5649b1d1b, with debug_info, not stripped
有可能是ld-linux.so.3, or ld-linux-armhf.so.3 or 其它$ ls -alh /lib/ld*
lrwxrwxrwx 1 root root 30 6月 17 2017 /lib/ld-linux-armhf.so.3 -> arm-linux-gnueabihf/ld-2.19.so
這片目標板,就是用arm-linux-gnueabihf,如上
x86的應該都是像下面這樣
$ ls -alh /lib/ld*
lrwxrwxrwx 1 root root 30 6月 17 2017 /lib/ld-linux.so.2 -> /lib32/ld-linux.so.2
如果弄混了,通常都不能執行
$ ./hello
sh: ./hello: not found
至於安裝arm-linux-gnueabihf,ubuntu通常用apt就行了
$ sudo apt-get install gcc-arm-linux-gnueabihf
手動安裝~載點:
a. 4.8-2013.12, 可以直接用的
b. 其它版本: 官方載點
gcc-linaro-armeb-linux-gnueabihf: Big-endian
gcc-linaro-arm-linux-gnueabihf: Little-endian
LDFLAGS:指定include位置LIBS: 指定用lib, ex: -lm, -lasound
CFLAGS: C, 指定C include位置,ex: CFLAGS=-I/usr/include
CPPFLAGS: C++, 指定C++ include位置
沒有留言:
張貼留言