是否可以混合使用不同版本的gcc和ld?

时间:2012-05-06 07:45:03

标签: android gcc ld ar

我的环境是arm-linux-androideabi(东芝AC100上的Android 2.2)。我的环境有2套GCC编译器(安装在设备的不同位置):

  1. 4.4.3(Android NDK on Android
  2. 4.6.0(R + GCC on Android
  3. 我遇到的问题是gcc-4.6.0会在每次运行时发生段错误(但它会成功运行每个任务,最后只能在出口例程中进行分段),而ld-4.4.3和ar-4.4 .3无法在我的环境中运行。另一方面,gcc-4.4.3运行得很漂亮,ld-4.6.0和ar-4.6.0也是如此。

    因此,在我的设备上构建时,如果我使用4.4.3运行configure,它将在配置步骤失败,因为即使配置测试程序编译成功,gcc segfaults并返回非零值(139 )。但是,如果我使用4.6.0运行configure,则configure运行得足够好,但构建(make all)在链接和静态库创建时失败。

    我的问题是:

    1. 是否可以使用gcc-4.4.3编译我的目标文件(gcc-4.4.3 -c input.c)然后链接到ld-4.6.0(ld-4.6.0 -o input input.o -lc )?也就是说,我将删除有问题的二进制文件,并使用工作二进制文件的组合来构建项目。
    2. 如果有警告,那么它们是什么?

1 个答案:

答案 0 :(得分:-1)

您可以使用shell脚本调用gcc,以隐藏错误的退出代码。