【NDK】【002】將C++代碼編譯爲dll共享庫

什麼是共享庫

C++代碼可以編譯成類庫,直接分發給其它應用調用,這使得可以很容易地將自己的代碼以庫文件的形式共享給他人使用,同時還能保護源碼不泄漏

C++共享庫在Windows中以dll文件的形式存在,而在Linux系統中則以so文件的形式存在,這兩種文件想必大家都不陌生,其實它們都是C++共享庫,只是適用於不同平臺的軟件,並且都可以被JNI調用

將C++代碼編譯爲dll共享庫

現在我們已經知道,Windows系統中常見的dll文件,其實和Android中的so文件是同一性質的東西
爲了讓大家視野看得更寬廣些,不侷限於安卓開發,我們先來講解如何編譯dll庫
雖然Android根本不可能調用dll庫,因爲dll是Windows動態鏈接庫,依賴於Windows底層系統接口
但是大家以後開發做得多了,Java開發是免不了要和dll打交道的,dll調用也是JNI的重要一部分
至於so庫,我們後面有的是機會講,因爲編譯so庫是NDK開發的第一步,不怕大家不會

我們這次使用CLion來編譯dll庫,相對於Visual Studio,CLion功能佈局更清晰點,更重要的是,CLion和Android Studio一樣,都是在IntelliJ Idea的基礎上擴展而來,用法基本一樣,只是適用語言不一樣,因此基本沒有學習成本

創建一個【C++ Library】工程
在這裏插入圖片描述
下載並配置MinGW
這是一個C++編譯器,代碼要靠它編譯成程序或庫,直接下載解壓,配置下路徑就可以了
在這裏插入圖片描述
編譯工程,【Build】-【Build Project】
在這裏插入圖片描述
在編譯目錄下找到生成的dll文件
在這裏插入圖片描述
OK,完工!

這次我們只演示如何編譯dll,用的是默認的C++代碼
實際dll想要被JNI調用,在命名上是有規則的,這個我們下節再講

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章