iOS調用靜態庫architecture問題總結

Makefile

CFLAGS = -arch armv7s -Wall -Wno-unknown-pragmas -fno-stack-protector -Wno-unused-function -Wno-missing-braces \
-std=c++11 -stdlib=libc++ -DHAS_CONSTRUCT -DDL_SERVER -isysroot (IPHONESDK) (CCOPT) $(INCPATH)

ld: warning: ignoring file ../libs/libFileTool.a, file was built for archive which is not the architecture being linked (armv7s): ../libs/libFileTool.a
Undefined symbols for architecture armv7s:

分析:
如果程序,architecture爲armv7s。
若所調用的靜態庫architecture爲armv7,則會出現如上問題。
規則:靜態庫architecture所支持的要>=程序支持的。

解決辦法:
讓靜態庫的architecture與程序保持一致,或支持的更多。

一般而言,靜態庫architecture支持的越多,編譯出來的體積也會成倍增長。

關於architecture:

armv7s iPhone5 iPhone5C
arm64 iPhone5S iPhone6 iPhone6 Plus iPhone6S iPhone6S Plus

architecture是向下兼容的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章