【发布时间】:2014-12-16 01:52:10
【问题描述】:
在 Linux 机器上,我可以编写一个简单的 C 程序,用 gcc 编译它,然后从命令行执行它。我想看看我是否可以用 NDK 做类似的事情。除此之外,也许作为替代方案,是否可以使用 gcc 并为 Android 设备指定不同的编译器?我会对基于 ARM 和 x86 的 Android 设备感兴趣。
【问题讨论】:
标签: android c++ c gcc android-ndk
在 Linux 机器上,我可以编写一个简单的 C 程序,用 gcc 编译它,然后从命令行执行它。我想看看我是否可以用 NDK 做类似的事情。除此之外,也许作为替代方案,是否可以使用 gcc 并为 Android 设备指定不同的编译器?我会对基于 ARM 和 x86 的 Android 设备感兴趣。
【问题讨论】:
标签: android c++ c gcc android-ndk
NDK 在“docs/STANDALONE-TOOLCHAIN.html”中包含解释如何执行此操作的文档。
(更新:看起来最新版本的 NDK 将此文档放在 "docs/Programmers_Guide/html/md_3__key__topics__building__s_t_a_n_d_a_l_o_n_e-_t_o_o_l_c_h_a_i_n.html" 中。在浏览器中打开顶级“NDK 程序员指南”并导航到“构建/独立工具链”可能更容易部分)。
设置指向 NDK 工具链的环境变量或创建 NDK 跨工具目录(如文档中所述)后,为 Android 环境构建 C 程序就很简单了。
附带说明一下,该文档有两节介绍如何调用编译器:
和
我发现“艰难的方式”更容易开始尝试。一旦我以这种方式执行了几次构建,我就使用“简单的方法”创建了一个跨工具目录,该目录更易于持续使用。
【讨论】:
file 命令对可执行文件有什么看法?
SYSROOT? arch-arm 或 arch-x86?