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是向下兼容的。