xcode - 创建通用应用程序时,如何链接到32位和64位版本分开的框架?

标签 xcode macos cocoa linker 32bit-64bit

我的情况:

  • 我想在 Xcode 3.2.2 中创建 i386 和 x86_64 的通用应用程序
  • 此应用具有依赖的第三方框架。
  • 该框架只有 i386 和 x86_64 的独立版本,没有通用版本。
  • 我将 i386 和 x86_64 版本添加到目标的 Link Binary With Libraries 部分。

我的问题:

构建 x86_64 版本时,Xcode 无法从框架中找到符号。看起来 Xcode 只通过命令行参数“-framework $FRAMEWORK_NAME”在 i386 版本的框架中搜索符号。

我的问题:

如何让 Xcode 也从 x86_64 框架搜索符号?或者在构建通用应用程序时是否可以链接到非通用库?

我的进步:

我想通过lipo创建这个框架的通用版本也许可以解决这个问题,但如果可能的话,我想避免这种情况。因为它涉及到一些外部的改变。

谢谢

最佳答案

您可以创建应用的两个版本,并将它们一起lipo,但如果您只lipo 框架本身,这可能是最简单的。您没有理由需要影响外部库的构建过程;您可以将其作为您自己的应用程序构建过程的一部分来完成。

关于xcode - 创建通用应用程序时,如何链接到32位和64位版本分开的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4211603/

相关文章:

iphone - 导航栏上的 titleview 在 segues 后的 View 中不可见

xcode - OSX 10.9 上的命令行工具 : Installed, 但无法显示?

iphone - CALayerInvalidGeometry',原因: 'CALayer bounds contains NaN: [0 0; nan nan] crash in view

python - easy_install 和文件权限

objective-c - 苹果机 : Display hierarchical lists of data plus detail view (similar to UINavigationController + UITableViewController)

ios - iphone 中的可扩展 tableView

php - SublimeLinter-php 或 SublimeLinter-phplint

c++ - OSX 上 boost::program_options 和 C++11 的链接器错误

objective-c - CFUserNotificationCreate 创建的弹出窗口不会出现在前面

objective-c - 使用 NSTreeController/NSOutlineView 添加子对象