亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 933 | 回復(fù): 0
打印 上一主題 下一主題

Android原生(Native)C開發(fā):編譯選項小結(jié) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-21 08:41 |只看該作者 |倒序瀏覽
在Android的所有源碼中,只有最頂層的目錄有一個Makefile,其它所有項目都是調(diào)用這個文件進行編譯。如果用"showcommands"打出詳細編譯信息,你會看到大量的編譯選項,其實根本不需要這么多,做如下步驟:
  • 將所有頭文件復(fù)制到 toolchain 的 include 目錄,可減少大量的 -I (頭文件查找目錄)選項,具體請參見:Android原生(Native)C開發(fā)之八:Toolchain環(huán)境搭建篇
  • 更多選項查看 $android_src/build/core/combo/linux-arm.mk,這是一個為Android準(zhǔn)備的編譯選項文件,基本上大部分的項目的編譯都依賴此文件。
做完了上面兩步,以下是我整理的一些編譯選項:
  • 編譯普通C文件,CFLAGS如下:
CFLAGS = -O2 -include AndroidConfig.h
CFLAGS+= -msoft-float -fpic \
-ffunction-sections \
-funwind-tables \
-fstack-protector \
-fno-short-enums
  • 編譯普通CPP文件,CXXFLAGS如下(與CFLAGS比,只是多了粗體的幾個選項):
CFLAGS = -O2 -include AndroidConfig.h
CFLAGS+= -msoft-float -fpic \
-ffunction-sections \
-funwind-tables \
-fstack-protector \
-fno-short-enums \
-fno-rtti \
-fstrict-aliasing \
-fno-exceptions \
-fomit-frame-pointer
  • 可執(zhí)行程序鏈接選項(除了如下選項,還要再加上項目所需的庫,如-lm,-lstdc++等):
LIB_DIR = /cygdrive/e/toolchain/arm-eabi/lib
CRT_OBJS= $(LIB_DIR)/crtbegin_dynamic.o $(LIB_DIR)/crtend.o 
LDFLAGS = -s -nostdlib -Bdynamic \
LDFLAGS+= -Wl,-T,armelf.x \
  -Wl,-dynamic-linker,/system/bin/linker
         -Wl,--gc-sections \
 -Wl,-z,nocopyreloc \
 -lc $(CRT_OBJS)
  • 動態(tài)庫鏈接選項(編譯時將 libtest.so 替換成你的庫名,再加上項目所需的庫):
SDFLAGS = -s -nostdlib \
  -Wl,-soname,libtest.so \
  -Wl,-shared,-Bsymbolic \
  -Wl,-T,armelf.xsc \
  -Wl,--gc-sections \
  -lc -lm

基本上,加上這些編譯選項,你就可以寫出自已的Makefile來編譯項目,我將這些編譯選項加上,已成功編譯SDL、jpeg、libpng等開源項目,更多的編譯選項請參見$android_src/build/core/combo/linux-arm.mk。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP