如何在Android系統上執行C 程式

2021-08-20 19:32:23 字數 1520 閱讀 6580

有兩種方式:

使用 ndk,通過 jni 的方式來呼叫 c++ 的方法。這部分知識點很多,可以參考:android ndk 從入門到精通(彙總篇)

android 的本質是基於 linux 系統的,我們是可以直接執行 c++ 的程式

使用 ndk 編譯生成在 android 系統上可執行的執行程式

把編譯好的可執行程式丟到手機的 「/system/bin」 目錄下(其它一些目錄也是可以的,例如 「/data」 目錄)。

給可執行程式新增執行許可權(chmod +x 命令),然後直接執行就可以了。

針對有 root 許可權的開發板或者手機,因為需要往/system/bin下寫東西。

我們就以 helloworld 為例來實現吧。

#include using namespace std;

int main()

這個需要你先將 ndk 的工具鏈生成並配置到環境變數中去。

關於如何配置 ndk 工具鏈的環境,可以參考這篇部落格:ndk工具鏈的生成和配置

arm-linux-androideabi-g++ -std=c++11 -pie -fpie -o helloworld helloworld.cpp

解釋:

-std=c++11指定使用 c++11

-pie不配置的話會出現如下錯誤:

「helloworld」: error: android 5.0 and later only support position-independent executables (-fpie).

-o是指定編譯生成的檔名

helloworld是指定生成的可執行檔名,隨便取都行

helloworld.cpp是需要編譯的源**

(實際應用中可以你還需要 push 很多其他檔案,例如 .a 、.so、等等,所以寫個指令碼操作復用性好一些)

當然實際應用中我們的測試程式肯定不會這麼簡單,他還會包含很多其他的標頭檔案、靜態庫動態庫等等,所以我們的編譯語句可能是如下這樣的:

arm-linux-androideabi-g++ -i include -std=c++11 -pie -fpie -o unittest test.cpp lib/***.so lib/***.so lib/***.a ...

如何在LINUX UNIX上執行PYTHON程式

編寫python 程式的方法與 shell 指令碼類似。例如,要編輯乙個名為 try python 的python 程式檔案,輸入如下命令。pico try python 下面輸入一段簡單的 python 來檢查它是否工作。usr bin env python print 2 2 第一行告訴 she...

如何在sublime上執行php

這個問題雖然隨便一搜都能有很多答案,但是我當時都沒有順利解決 我會詳細地寫出較為容易理解和操作的步驟 第一步,配置php環境變數 如圖一所示 1.找到 我的電腦 屬性 2.高階系統設定 3.環境變數 4.找到 系統變數 中的path 點選編輯 5.改成對應的php 所在位址 接下來就是確定 確定 確...

如何在Crosswalk上強制執行WebGL

如果你想在乙個包含黑名單中gpu的裝置上使用webgl測試乙個應用,這裡存在乙個可用的變通方法 將 ignore gpu blacklist命令列選項傳遞到xwalk 二進位制檔案即可。但是如果crosswalk被當做本地庫直接嵌入到應用中 例如 使用crosswalk cordova,crossw...