【问题标题】:Use boost library in cocoa project在可可项目中使用boost库
【发布时间】:2010-04-25 05:57:10
【问题描述】:

理论上可以在可可项目中使用boost库(例如boost线程)吗?

【问题讨论】:

    标签: c++ objective-c boost


    【解决方案1】:

    是的,没有什么能阻止你这样做:

    • 您可以混合使用 Objective-C 和 C++ - 结果称为Objective-C++
    • 您当然也可以链接到 C 和 C++ 库

    【讨论】:

    • 是的,我知道 Objective-C++ ...但我只是问,因为我收到 3057 个错误,看起来都像 error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token :)
    • @Niels:您确定您使用的是.cpp.mm 文件吗?或者,您可以在文件设置中设置语言,但这可能会误导其他人。
    • @gf 是的,我将文件从 .m 重命名为 .mm 并获取信息现在从文件类型中显示:sourcecode.cpp.objcpp 但尽管我收到了这些错误...
    • @Niels:你能给出一个重现问题的小样本吗?你也可以尝试对一个普通的 C++ 文件做同样的事情——听起来不像,但可能是 Objective-C 关键字是罪魁祸首。
    • 它只是在尝试包含 boost/thread.hpp 时发生(例如 boost/noncopyable.hpp 工作正常)。从 XCode 尝试时,我得到 '__try' was not declared in this scope,从命令行尝试时,我得到 declaration does not declare anything-errors,它的来源来自 boost/exception/diagnostic_information.hpp ...
    【解决方案2】:

    是的。您可以compile boost as a static library 并链接它,或者您可以将源代码添加到您的项目并使用它进行编译。

    【讨论】:

      【解决方案3】:

      是的,只要确保你使用 Objective-C++ 并包含到你需要的 boost 目录中。 (注意:要更改为objective-C++,请将文件扩展名更改为.mm而不是.m,并保持.h文件相同)

      【讨论】:

        猜你喜欢
        • 2013-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多