相关疑难解决方法(0)

Xcode自定义构建配置导致静态库"找不到库/文件"

我有一个工作区,其中包含一个项目,该项目链接到另一个项目中的静态库(也在工作区中).这是Kobold2D中的一个问题我无法解决,即使我理解原因,我想它与这个问题类似.

项目目标和静态库目标都具有DebugRelease构建配置.一切都很好.

现在,有人在项目中添加了新的构建配置,并将其命名为Ad-Hoc.现在,项目的目标构建了Ad-Hoc配置,但是静态库没有这样的配置.显然,他们默认构建Release配置.

最后,当链接器应该将所有内容组合在一起时,它会失败:

ld: library not found for -lbox2d-ios
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang++ failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

对于通过-force_load $(BUILT_PRODUCTS_DIR)/libSomeLib.a错误强行加载的库类似但是说"找不到文件".我应该注意,库"libbox2d-ios.a"位于"带库的链接二进制"构建阶段列表中.

显然问题是链接器假设这些库位于BUILT_PRODUCTS_DIR中的Ad-Hoc-iphoneos文件夹中,而它们实际上位于Release-iphoneos文件夹中,因为它们没有Ad-Hoc构建配置.

我怎么能把连接器打到脸上并告诉他把它们放在哪里呢?最好是我正在寻找适用于这两种情况的解决方案,即库添加标准方式(链接二进制文件库构建阶段)和需要额外-force_load才能工作的库.

我希望有一些方法可以:

  • 强制库放在应用程序目标的构建配置文件夹中
  • 运行一个后编译和预链接脚本,将每个库复制到构建配置文件夹
  • 指定库的相对路径
  • 使用$ BUILT_PRODUCTS_DIR以外的其他宏来执行-force_load
  • 像-WTFmake-all-problems-go-away这样的链接器标志

对不起,但我不得不这样说...... ARGH!:)

linker build static-libraries xcode4

43
推荐指数
5
解决办法
1万
查看次数

标签 统计

build ×1

linker ×1

static-libraries ×1

xcode4 ×1