在Android手机上编译C代码

时间:2013-03-28 19:49:45

标签: android gcc compilation android-ndk toolchain

我想编译并运行发送到我的AndroidApp的.c文件。 我想在ARM的ARM .c文件上编译。 我正在使用Android 4.2的Galaxy Nexus。 我已经安装了Android SDK和Android NDK 我已经使用终端IDE完成了这项工作,但我不想从终端手动编译它。 现在我已经下载了Android的GCC(android-gcc-4.4.0),并且不知道如何正确地将它添加到我的应用程序以及如何从Java代码中使用它进行编译。

我在互联网上已经阅读了很多关于此事的内容,但是没有一个真正帮助我搞清楚,如何做到这一点

所以我的问题是: 如何使用Android应用程序中的Android / NDK工具链或任何其他工具链来编译然后运行.c文件。

修改 我现在将android-gcc解压缩到我的手机文件目录(data / data /.../ files)中。 我想在手机上调用gcc编译器来编译.c文件。 我试着用:

String[] cmds={MainActivity.this.getFilesDir() + "/android-gcc-4.4.0/bin/arm-eabi-gcc-4.4.0", "-c", file_path};
String result = "";
Process p = Runtime.getRuntime().exec(cmds);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = in.readLine()) != null) 
{
    result += line + "\n";
}
alert_dialog("Output", result); // Creates and displays an alert dialog
in.close();
}
catch (Exception e) 
{
    alert_dialog("Error", e.toString() + "\n" + e.getMessage());
}

这是我在Android上调用gcc的方法,但我只得到以下异常: java.io.IOException:运行exec()时出错。命令[...] 工作目录:null 环境无效。

有没有人知道如何在手机上调用android-gcc编译器?

任何帮助表示感谢并提前致谢

1 个答案:

答案 0 :(得分:-1)

这不是官方支持的情况;没有操作系统可以让非特权应用程序在设备上安装可执行代码。

在根电话上,你可能会有运气;但是,你还需要从头开始整理工具链。 NDK从未意味着这一点。在ARM上运行的NDK没有任何风格。