【问题标题】:Boost: how to build Boost under MacOSXBoost:如何在 MacOSX 下构建 Boost
【发布时间】:2009-12-02 15:37:08
【问题描述】:

我正在尝试构建 Boost 的 MacOSX 通用二进制文件(对于 >=macosx10.3,我至少需要 i386/ppc)。

我尝试了很多不同的方法、选项和版本,但最终都因这次崩溃而失败:

Boost: what could be the reasons for a crash in boost::slot<>::~slot?

我猜这次崩溃是因为 Boost 版本不好。

对于 Boost-1.41.0,我认为我尝试过的最正确的选项是:

./bootstrap.sh && sudo ./bjam architecture=combined macosx-version=10.4 install

【问题讨论】:

  • 为什么说你需要>=osx10.3 然后设置macosx-version=10.4
  • 我从某个网站获得了该命令。此外,我正在使用 SDK 1.4 构建另一个应用程序,但 10.3 的兼容性选项似乎有效,所以我只是使用了该站点上编写的命令。但是如果它可以工作那就太好了,如果它在那里不起作用,我可以稍后尝试 10.3。
  • 我不知道 bjams macosx-version 到底做了什么,但混合目标可能只是您问题的根源。
  • 我试过没有同样的问题/崩溃。

标签: c++ boost macos


【解决方案1】:

我建议你使用 MacPorts 来安装 Boost。这将自动为您构建它。

http://www.macports.org/ports.php?by=library&substr=boost

【讨论】:

    【解决方案2】:

    这已经是正确的命令了。我发现了我的崩溃问题:

    在项目中编译 Boost 时,您必须使用完全相同的 STL 预处理器定义。 IE。当 Boost 在没有它们的情况下编译时,您无法在项目中启用 _GLIBCXX_DEBUG 或 _GLIBCXX_DEBUG_PEDANTIC。

    【讨论】:

    • 这两个额外的定义是你自己加的吗?还是在 XCode 中默认使用它们进行调试构建?在后一种情况下,我们也可以将 Boost 更改为默认使用它们——如果您指向相关文档说明它们已设置。
    • 它们在 Debug 构建中默认使用,但在 Release 构建中不使用。此外,这可能取决于 Xcode 版本和您使用的项目模板。所以你不能真正依赖它。
    【解决方案3】:

    刚刚从macports 安装,希望这对您来说已经足够好了。下面的命令:

    sudo port install boost +universal
    

    【讨论】:

      猜你喜欢
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      相关资源
      最近更新 更多