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 檔...