最近用2416板子做开发。结果一上来就碰到了奇怪的问题。
提供的工具链里面是arm-none-linux-gnueabi-gcc,我用这个gcc编译一个最简单的helloworld程序,-c没问题,链接的时候居然老是提示我错误:
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: crt1.o: No such file: No such file or directory
collect2: ld returned 1 exit status
开始还以为是环境变量没设对,结果折腾了很久,把环境变量翻来覆去设置了N遍还是不解决问题。
后来偶尔看了一下bin目录,发现很奇怪有两个gcc,一个是arm-linux-gcc,一个是arm-none-linux-gnueabi-gcc。用第一个居然编译成功了。。。
第一个是个文本文件,打开一看,是在第二个gcc后面加了个选项-march=armv4t。
shit,原来这个工具链居然提供了两个指令集的glibc,一个是armv4t,一个是thumb2。当初图省事根本没看说明文档,结果折腾这么久。