使用termux或gnuroot在android上运行C代码?

时间:2016-09-13 06:25:08

标签: android linux permission-denied terminal-emulator

我尝试使用各种终端模拟器应用在我的Android设备上运行c代码。到目前为止我已经尝试了3次,所有这些都给了我错误。我尝试的第一个是最流行的:终端IDE。自从Android的更高版本发布以来,由于位置无关的可执行(PIE)错误,此应用程序将无法编译c代码。接下来是一个名为termux的有前途的应用程序。 see the picture for and example of some of what I tried in this app这个应用程序允许我用gcc编译我的C代码但是给了我"权限被拒绝"每当我尝试运行最简单的代码时都会出错。我彻底检查并研究了这个错误。我尝试以各种不同的方式使用chmod以及使用ls -l检查权限,并尝试在内部设备存储上的外部SD卡AS WELL AS中进行编译和运行。我知道SD卡没有执行权限,但即使在我设备的内部存储器中它仍然无法工作。我已经向termux创建者寻求帮助,但无济于事。无论我做什么,我似乎无法在我的Android设备上运行这些代码。它没有根深蒂固,我也不打算在不久的将来生根。所有这些应用程序声称它们应该在不支持设备的情况下工作。我终于尝试在另一个名为gnuroot的应用程序(我的最后希望)中运行C代码。不幸的是,我仍然得到了权限被拒绝的错误,但是代码确实像在termux中那样进行编译。顺便说一下,我无法访问这些应用程序创建的任何目录。它们隐藏在"我的文件中。应用程序通常让我浏览我的设备上的目录。但是,当我输入ls时显示的目录不在我的文件应用程序中,因此我无法直接在其中放置任何文件。我只能看到termux和gnuroot的基本主目录,但是当我尝试将代码放在那里时,我仍然得到权限被拒绝错误。此外,我不知道甚至放置代码以使其工作的目录。我完全迷失了,真的需要帮助。谢谢。

3 个答案:

答案 0 :(得分:2)

我使用gcc在termux下运行得很好。

在编译时,使用-o选项编译代码,而不是-c,如下所示:
gcc -o helloworld helloworld.c

将使用执行权限创建目标文件helloworld,您可以使用./helloworld运行它。

请注意,源文件必须首先位于主目录中。如果您还没有更改环境变量,请首先使用cd转到主目录,然后在那里编译源文件。

答案 1 :(得分:2)

在Termux中,如果您使用Midnight Commander或Ranger,您可以从家中返回一个目录到文件,然后在那里您可以找到apps / etc,/ bin,/ usr,/ etc ..目录。也许这是您可以找到或发送您正在寻找的文件的地方。

答案 2 :(得分:1)

尝试升级Termux。只需运行:

“包升级”(没有引号)

在命令行中。 如果这样不能解决问题,请运行:

“package install termux-exec”(没有引号)

希望得到这个帮助。