【问题标题】:Building a project with Boost dynamic libraries disabled在禁用 Boost 动态库的情况下构建项目
【发布时间】:2010-08-12 15:18:17
【问题描述】:

我正在尝试构建开源项目 VMWare 开放视图客户端。我遇到的问题是我可以按照他们的说明构建它,但是我的构建不包括所有依赖项,因此当我去部署它时,会出现一个失败,说缺少 libboost_signals-gcc41-1_34_1.so.1.34.1。根据他们的论坛,有人建议以下尝试在禁用动态库的情况下构建提升。如果我不知道如何实现这个问题。

想法?

作为参考,您构建项目的方式是 ./configure && make。
我查看了 ./configure 选项,有一个--enable-static-icu,但没有--enable-static-boost。

有一些可选标志可以直接传递给 C/C++ 编译器,但我不确定这些选项是什么。

另外,我在这里发帖的原因是我在他们的论坛上发了一个帖子,但没有得到任何回应。还有一些其他问题已经发布了一个多月,但没有人回答。所以我怀疑他们正在休息。

感谢您提供的任何意见:-D

【问题讨论】:

  • 您可能应该使用信号2 而不是信号,因为信号2 只是标头并且是线程安全的。
  • 我还建议使用 3 岁以下的 Boost 版本。使用如此旧的版本可能是邮件列表中没有人回复的原因。当几乎没有其他人使用您正在使用的版本时,这真的很难提供帮助。

标签: c++ boost vmware


【解决方案1】:

首先,不,您不使用“配置”来构建提升。你用 bjam。

问题似乎是您没有将依赖库与可执行文件一起部署。尝试确保 boost 库也在目标机器上。

此外,如果您运行“configure --help”,任何使用“configure”构建 makefile 的项目都会提供完整的选项列表。

【讨论】:

    【解决方案2】:

    为了回答您的问题,静态库应默认构建——请您仔细检查它们是否存在。如果没有,您应该直接或通过编辑生成的 Makefile 将 'link=static' 添加到 bjam。

    在更高的层面上,我不太确定您想要做什么,或者为什么您会收到此建议。错误消息意味着您的目标机器上缺少 .so。你为什么不把它复制过来并调整 LD_LIBRARY_PATH 呢?因为即使你有 Boost 的静态库,你仍然需要调整你的程序以使用静态库,而不是共享。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 2017-10-02
      • 2010-10-04
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多