最近需要在android平台是使用gloox,官方gloox沒有沒有對應的android.mk檔案,那當然也可以用android ndk來編譯,但是我覺得用ndk編譯有點麻煩,就寫乙個android.mk來使用mm編譯。
首先,進入src目錄,configure該專案:
./configure --host=arm-linux cc=arm-none-eabi-gcc
然後,開啟makefile.in,並拷貝出libgloox_la_sources所有的內容,並儲存在makefile.inc檔案中
接著,編寫android.mk檔案
local_path:= $(call my-dir)
include $(clear_vars)
include $(local_path)/makefile.inc
local_src_files := $(addprefix ./,$(libgloox_la_sources))
#local_c_includes += $(local_path)/include/ $(local_path)/../zlib
local_c_includes := \
$(local_path)/.. \
external/stlport/stlport \
external/zlib \
external/openssl/include \
bionic
#######################################
# target shared library
#######################################
# target lib
local_src_files := $(local_src_files)
local_c_includes += $(local_c_includes)
local_shared_libraries := libz libssl libcrypto libstlport
local_prelink_module := false
local_module:= libgloox
local_module_tags := optional
include $(build_shared_library)
#######################################
# target static library
#######################################
#static library
include $(clear_vars)
local_src_files := $(local_src_files)
local_c_includes += $(local_c_includes)
local_ldlibs := -lz -lssl -crypto
local_module := libgloox
include $(build_static_library)
最後,執行mm並得到libgloox.so和libgloox.a.
samba移植到android流程
參考這一篇文章 然後結合自己實際操作過程中遇到的一些問題總結出來這個流程 所以把自己記得的流程記錄下來,結合網上一些文章總結,並將自己實際遇到的問題貼出來 廢話少說 下面是具體流程 我用的samba包是samba 3.5.9,交叉編譯工具包是arm linux gcc 4.4.3.tar.gz 首先...
c 程式移植到android
在android 4.4之後新增了新的保護機制,可執行檔案必須是採用pie編譯的。如果是使用ndk進行編譯的 需要使用到android.mk指令碼 則在指令碼中新增 local cflags pie fpie local ldflags pie fpie 如果是手動採用交叉編譯鏈進行編譯的,則在編譯...
Linux程式移植到Android上
序言 由於本人還是比較偏重於先說明原理在說明實際操作步驟,要知其然更要知其所以然,如下圖所示 一般情況下,有兩種方法。1.乙個就是將程式靜態編譯,將程式中所有需要的庫全部編譯進可執行檔案中。這樣程式在android中執行就不需要鏈結任何動態庫了。但是帶來乙個非常大的弊端就是這個程式會非常大,資源利用...