【发布时间】:2012-05-15 04:30:36
【问题描述】:
我的环境是 arm-linux-androideabi(东芝 AC100 上的 Android 2.2)。我的环境有 2 套 GCC 编译器(安装在设备上的不同位置):
- 4.4.3 (Android NDK on Android)
- 4.6.0 (R + GCC on Android)
我面临的问题是 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 运行配置,配置运行得很好,但构建 (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) 链接?也就是说,我将删除有问题的二进制文件并使用工作二进制文件的组合来构建项目。 - 如果有警告,那么它们是什么?
【问题讨论】:
-
没试过,但我想知道编译器会使用哪些库(头文件)以及链接器会链接哪些库。可能你必须告诉他们......
-
一发布这个问题,我就意识到我可以尝试并看到。但是,正如您的评论所表明的那样,我需要研究很多警告。