和Windows下的开发不同,嵌入式Linux开发显得有些复杂。其实并不是复杂,而是我们面前的新知识有点多:Linux操作系统、交叉编译器、库、大小端、软浮点...
前几天用cross-3.3.2编译器编译Linux-2.6.14内核,就出现了链接错误。对于初学者,这类非语法类错误是非常难查的,所以我只能建议大家换编译器版本。比如这个cross-3.3.2编译器在编译u-boot-1.3.1时就有问题出现,但是没想到在编译2.6.14内核的时候也能出现问题。你可以通过根据错误提示,进行代码修改,但是这并不明智,这种做法就像拆东墙补西墙一样,你无法保证没有其他问题出现。
所以我还是建议大家:
1)在尚未了解lds语法以前,不要试图进行修改;
2)选择新版本(不一定是最新)的编译器。我一直使用的ELDK,编译uboot、内核移植没有问题。最近还测试了arm-2008q1-126-arm-nONe-linux-gnueabi-i686-pc-linux-gnu.tar.bz2,效果也不错。