gpt4 book ai didi

ios - XCode中带有环境变量的条件链接静态库

转载 作者:可可西里 更新时间:2023-11-01 06:15:49 26 4
gpt4 key购买 nike

我想将静态库(.a 文件)链接到我的代码中,但有一些限制

  • 条件应该是环境变量,而不是构建类型(调试、发布)或架构。
  • 如果未使用静态库(未导入,未在代码中使用),则最终二进制文件不应包含对它的任何引用。

代码应该是这样的:

#ifdef CRASH_LOGGING
[Crittercism enableWithAppID:@"abc"]
#endif

并且环境变量应该有一个相似的名字。

我玩过 OTHER_LINKER_FLAGS = -weak_library,从目标中删除 .a,将其设置为可选,但我无法让它工作。库未链接,出现编译错误,或者 .a 的一部分属于最终可执行文件。

我怎样才能做到这一点?

最佳答案

最后,我通过向xcodebuild 命令行添加更多参数,最终解决了这个问题。

基本上你需要做的是调整:

  • header .h 文件所在的位置
  • .a 所在的位置
  • 告诉链接器你想使用库 -lCrittercism_v4_0_7
/usr/bin/xcodebuild -configuration Release clean"LIBRARY_SEARCH_PATHS=\${LIBRARY_SEARCH_PATHS} \${PROJECT_DIR}/Libraries/CrittercismSDK""HEADER_SEARCH_PATHS=\${HEADER_SEARCH_PATHS} \${PROJECT_DIR}/Libraries/CrittercismSDK" "OTHER_LDFLAGS=-lCrittercism_v4_0_7"

使用这种方法,您根本不需要将库添加到目标或 Xcode。如果最后三个参数没有添加到命令行,库将根本不属于最终的可执行文件。

关于ios - XCode中带有环境变量的条件链接静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17443656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com