使用CMake進行android native開發

2021-07-12 05:57:35 字數 1765 閱讀 9166



android ndk中提供了ndk-build指令碼,以及若干mk檔案,以簡化ndk的開發,這對於開發一些小型應用來說足夠了.如果對於一些大型工程特別是開源工程,人家是要cmake來組織的該怎麼編譯呢,總不能自己去重新寫.mk檔案吧。下面介紹對於這種專案的android庫編譯方法。

2、使用ndk建立單獨的工具鏈

export ndk=~/android/android-ndk-r6 #填android ndk的路徑

$ndk/build/tools/make-standalone-toolchain.sh –platform=android-12 –install-dir=/opt/android-toolchain-12

alias android-cmake='cmake -dcmake_toolchain_file=$andtoolchain '

source /etc/profile

這樣以後,就可以通過執行android-cmake命令編譯出適合android平台的.a和.so檔案了。

cd $my_cmake_project

mkdir build

cd build

android-cmake ..

位於libs/armeabi-v7.

靜態庫可通過下面指令檢視檔案架構。

objdump -a lib***.a

動態庫通過下面指令檢視。

file lib***.so

#!/bin/sh

export path="/media/f12/opt/ndklocal/bin:$"

pref="arm-linux-androideabi-"

export cc="$gcc"

export cxx="$g++"

export ld="$ld "

export cpp="$cpp"

export as="$as"

export objcopy="$objcopy"

export objdump="$objdump"

export strip="$strip"

export ranlib="$ranlib"

export ccld="$gcc"

export ar="$ar"

out_dir="`pwd`/android-build"

cmake \

-dcmake_system_name="generic" \

-dcmake_cxx_flags="$" \

-djthread_include_dirs="../jthread/android-build/include/jthread" \

-djthread_libraries="../jthread/android-build/lib" \

-dcmake_prefix_path="../jthread/android-build" \

-dcmake_install_prefix="$" .

make && \

make install

cd $/lib && \

$ -x libjrtplib.a && \

$ $ -shared -wl,-soname,libjrtplib.so -o libjrtplib.so *.obj && \

rm *.obj



如何利用cmake移植程式到Android

開發測試平台 小強機械人 很多c 和c程式都使用cmake去管理程式依賴和編譯程式。新版本的cmake已經支援 cross compile 程式到android平台。我們可以利用ndk和cmake很方便的移植程式。下面是乙個移植的例子。因為新版本的ndk已經預設使用clang進行編譯了 安裝方式參照...

cmake使用範例

cmake作為一款跨平台的專案構建工具,其使用範圍已經越來越廣,本文以實際專案為例,展示乙個使用該編譯工具的模板。希望我們都能在這些高效的工具幫助下都享受程式設計的樂趣。project src libs modules includes build bin cmakelists 根目錄下cmakel...

CMake使用整理

cmake是乙個跨平台的安裝 編譯 工具,可以用簡單的語句來描述所有平台的安裝 編譯過程 它使用乙個名為 cmakelists.txt 的檔案來描述構建過程,可以產生標準的構建檔案,如 unix 的 makefile 或windows visual c 的 projects workspaces 檔...