0

我正在尝试通过定义有条件地链接。 .a 静态库。这在xcode中可能吗?基本上试图将库特定代码包装在 ifdefs 中,以便可以通过设置标志在编译时将其排除。

4

1 回答 1

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

于 2009-11-24T06:01:15.123 回答