linux各个内核版本与交叉编译器版本的对应问题。这个是怎么对应的。我怎么知道我的内核需要那个编译器。

还有,比如说,linux2.6.38.8的内核,我用4.4.3的交叉编译器可以通过,用3.4.1的有问题(也可能是我有问题没找到)。为什么。说详细点,谢谢!回答好的,加70分,凑齐100分。

一般来说越新的内核用越新的交叉编译器,你不用知道怎么选择,网上都有大量的现成例子,你这个3.4.1和4.4.3 都跳了一个重大改版了,也许你这个3.4.1只能编译通过2.4.xxx的内核,交叉编译器在编译的时候涉及到对一些代码的优化,2.4内核 和2.6内核差了很多,这个你也知道!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
看看 Documentation/Changes 那个文档 ,它会告诉你编译器所需的最小版本号追问

Gnu C 3.2 # gcc --version
Gnu make 3.80 # make --version

请问,我这里是要选哪一个呢?3.2以上的arm-linux-gcc ,还是3.8以上的 ?

追答

gcc 版本 3.2

make 版本 3.8

但也要 关注 Binutils 的版本
还有 eabi abi 的区别

ps 交叉编译器推荐 http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ 上的

追问

谢谢!顺便先问下,你知不知道内核和根文件系统是怎么对应的?比如说,我用linux2.6.38.8版本的内核,我怎么知道我的根文件系统需要什么版本的?

追答

内核 和 文件系统 基本已经没关联,但对于arm 要注意eabi abi 内核有个选项 是否使用 eabi

如果使用eabi 根文件系统 要用 gcc 4.0 以后的 如果没选 gcc 用3.0 的

追问

谢谢!

本回答被提问者采纳
相似回答