我可以在我的Ubuntu 9.10上使用gcc与旧版本的Linux发行版进行交叉编译吗?

时间:2010-04-28 21:11:28

标签: c gcc cross-compiling

我有一些旧硬件,上面运行着旧版的SuSE linux。现在我有了这台运行Ubuntu 9.10的花哨的开发机器。我用来编译我的C应用程序的一些工具(用Python 2.6.x编写)在旧的SuSe框中不可用。那么......是否有可能在我的开发盒上编译那台旧机器?

我有以下几个步骤,但是想冒险进入这个任务之前要交叉检查: 1.找出我的应用程序需要哪些静态/共享库,并找到/构建它们的目标版本 2.还可以找到相应的头文件 3.将正确的标志输入gcc以使用目标标头和库 4.将正确的标志输入gcc以使用正确的体系结构(i386 / i686),还是需要交叉编译工具链。 5.编译,上传和欣赏; - )

我经常使用avr-gcc和cc65,两者都是交叉编译。我知道你设置了一个coss编译器来开发类似gumstix的东西,所以应该可以为旧的/其他Linux发行版做同样的事情,不是吗?

C

1 个答案:

答案 0 :(得分:2)

我接触这个问题的方法就是抓住你的oldmachine:/usr/liboldmachine:/usr/include,这样你就可以newmachine:/oldmachinecompiler/usr/{lib|include}然后构建交叉编译器设置--sysrootnewmachine:/oldmachinecompiler/

这确实是确保程序中的任何库要求(包括libc)与oldmachine兼容的唯一方法。