【问题标题】:Linking to a boost library in a Cocoa Application链接到 Cocoa 应用程序中的 boost 库
【发布时间】:2012-03-27 12:59:31
【问题描述】:

我是编程新手,在链接到 Cocoa 应用程序中的 Boost 库时遇到问题。

我从 XCode 中的 C++ 应用程序链接到 Boost 库,它运行良好。但是,在我现在正在处理的 Cocoa 应用程序中,链接到 Boost 库的操作不起作用,并引发错误:

ld: warning: in /path/to/project/build/Debug-iphonesimulator/libboost_thread.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

这似乎是因为 C++ 应用程序使用 x86_64 架构,它与 Boost 库一起使用,而 Cocoa 应用程序使用 i386 架构,这似乎不起作用。

如果解决方案是我应该以某种方式安装 Boost 库以便它与 i386 架构一起使用,我该怎么做呢?还是有其他更好的解决方案?

提前致谢。

【问题讨论】:

    标签: xcode boost i386


    【解决方案1】:

    听起来您需要为 BOTH i386 和 x86_64 构建 Boost 库。

    Here's a link to a slightly older question that talks about compiling Boost as a static Universal (32-bit + 64-bit) library.

    您正在开发的 Cocoa / Objective C 应用程序也应编译为通用(适用于 i386 和 x86_64)应用程序。

    【讨论】:

    • 在真实设备上部署arm 怎么样?
    • stackoverflow.com/questions/1577838/… 有关于如何为“真实设备”构建的答案。
    • 谢谢 - 我会尝试将 Boost 编译为静态通用库。但是我应该如何将 Cocoa/Objective C 应用程序编译为通用应用程序?这是我以前没有遇到过的。
    • 就像确保项目设置中的“架构”和“有效架构”字段设置为“i386”和“x86_64”一样简单。要明确向您展示如何设置它,您可以谷歌一下。 I also found a related question that talks about this。哦,此评论假设您在谈论 Macintosh 应用程序,而不是 iPhone / iOS 应用程序。希望这会有所帮助!
    • 谢谢 - 整理好了。
    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 2013-05-02
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多