我的环境是 arm-linux-androideabi(东芝 AC100 上的 Android 2.2)。我的环境有 2 套 GCC 编译器(安装在设备上的不同位置):
- 4.4.3(Android 上的 Android NDK)
- 4.6.0(Android 上的 R + GCC)
我面临的问题是 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 运行配置,它将在配置步骤失败,因为即使配置测试程序编译成功,gcc 也会出现段错误并返回非零值 (139)。但是,如果我使用 4.6.0 运行 configure,configure 运行得很好,但是 build ( make all
) 在链接和静态库创建时惨遭失败。
我的问题是:
- 是否可以使用 gcc-4.4.3 编译我的目标文件(
gcc-4.4.3 -c input.c
),然后与 ld-4.6.0(ld-4.6.0 -o input input.o -lc
)链接?也就是说,我将删除有问题的二进制文件并使用工作二进制文件的组合来构建项目。 - 如果有警告,那么它们是什么?