我正试图通过定义来连接.a静态库。这可能在xcode中吗? 基本上尝试在ifdefs中包装特定于库的代码,以便在编译时通过设置标志来排除它。
答案 0 :(得分:1)
不,C #define
与库链接的级别不同。
但是,您可以从自定义构建设置的值(例如#define
)设置C BUILT_WITH_FOO
(通过预处理器宏构建设置),还可以设置OTHER_LDFLAGS
构建设置也基于该自定义构建设置。
例如:
BUILT_WITH_FOO = foo
GCC_PREPROCESSOR_DEFINITIONS_ = USING_FOO=0
GCC_PREPROCESSOR_DEFINITIONS_foo = USING_FOO=1
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_$(BUILT_WITH_FOO))
OTHER_LDFLAGS_ = -lsomething
OTHER_LDFLAGS_foo = -lsomething -lfoo
OTHER_LDFLAGS = $(OTHER_LDFLAGS_$(BUILT_WITH_FOO))
以上内容只允许您调整BUILT_WITH_FOO
构建设置的值,以选择是使用名称以尾随_
结尾的预处理器宏和其他链接器标志变体,还是使用名称以尾随_foo
结尾。