Android下使用C語言的四種編譯方式

2021-06-22 22:42:28 字數 1121 閱讀 1770

一、編寫helloworld.c android.mk

[cpp]view plain

copy

#include 

intmain()    

local_path:= $(call my-dir)    

include $(clear_vars)    

local_src_files:=hello.c    

local_module := helloworld    

local_module_tags := optional    

include $(build_executable)   

二.編譯

1、使用ndk r5

ndk-build 命令的使用。

2、使用通用toolchain

arm-none-linux-gnueabi-gcc -static hello.c -o helloworld 

adb push helloworld  /data

3、在原始碼環境中編譯

在原始碼development 目錄下建立hello目錄,將helloworld.c android.mk拷貝至hello目錄下,然後mm即可。

4、使用原始碼自帶toolchain

在這之前要把上一步中的helloworld模組clean:

make clean-helloworld

使用showcommands選項重新編譯helloworld,檢視具體命令,從輸出命令列可以看到,android編譯環境所用的交叉編譯工具鏈是prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc:

make  helloworld  showcommands 

(target strip的作用是什麼?)

android並沒有採用glibc作為c庫,而是採用了google自己開發的bionic libc,通用的toolchain用來編譯和移植android 的linux核心是可行的,因為核心並不需要c庫,但是開發android的應用程式時,其他toolchain編譯的應用程式只能採用靜態編譯的方式才能執行,使用靜態方式編譯出來的執行檔案都比較大。

使用C語言擴充套件Python 四

首先,遵循 測試先行 的原則,先來看我們改造後的python這一端,你可以每次讀取音訊原始檔的乙個資料塊,將其轉遞給encoder物件的encode方法,這樣無論你的原始檔是何種格式,你都可以在encoder中進行自由的控制,示例 如下 import clame inbufsize 4096 if ...

使用C語言擴充套件Python 四

首先,遵循 測試先行 的原則,先來看我們改造後的python這一端,你可以每次讀取音訊原始檔的乙個資料塊,將其轉遞給encoder物件的encode方法,這樣無論你的原始檔是何種格式,你都可以在encoder中進行自由的控制,示例 如下 import clame inbufsize 4096 if ...

Android 程式設計下字型檔的使用

在安卓作業系統下對於 textview 字型的支援非常有限,預設情況下 textview 的 typeface 屬性支援 sans serif monospace 這三種字型,如果在沒有指定字型的情況下,系統缺省會使用 sans 作為文字顯示的字型。但這三種字型只支援英文,也就是說只要你顯示的文字是...