2015-06-30 63 views
1

我知道這可能被提前多次;但我找不到合適的答案。無論如何,Android - 使用CCTools編譯的運行命令行程序

在我的Android手機上,我安裝了CCTools。我可以編譯C/C++程序並使用CCTools菜單項運行它們。但是,當我嘗試從終端運行程序時,我得到'權限被拒絕'。我使用Linux風格的'./a.out'來運行。

回答

0

tl.dr .: Android不是開發命令行應用程序的好平臺。

出於安全原因,Android不支持從用戶存儲執行文件。這由掛載標誌noexec完成。這是無法更改的,因爲底層文件系統不支持可執行文件。 (至少在我的Nexus 5上加上棒棒糖,你可以試試(如果你有root的話)mount -o remount,exec /storage/[your sdcard path]。路徑可以在mount的輸出中找到)

作爲破解,如果你有root權限,你可以複製文件到/ mnt/obb /。這是一個臨時文件系統。在那裏你必須做chmod 0755 /mnt/obb/[filename]將文件標記爲可執行文件。然後你可以執行它。

+0

謝謝。但是,CCTools如何運行命令行應用程序? – Strongman

+0

CCTools將文件複製到允許可執行文件的緩存導向器中。那裏的文件被標記爲可執行文件,然後執行。這與我的黑客相同,但有另一個目錄。你可以在OnCreate的['LauncherConsoleActivity.java'](https://code.google.com/p/cctools/source/browse/trunk/cctools/src/com/pdaxrom/cctools/LauncherConsoleActivity.java) –

+0

我明白了。你知道C++的方式嗎? – Strongman