构建禁用 Boost 动态库的项目
我正在尝试构建开源项目VMWare open view client。我遇到的问题是我可以按照他们的说明构建它,但是我的构建不包含所有依赖项,因此当我部署它时,会出现错误,提示缺少 libboost_signals-gcc41-1_34_1.so.1.34.1。根据他们的论坛,有人建议尝试在禁用动态库的情况下构建 boost。如果我不知道如何实现这一点,就会出现问题。
有想法吗?
作为参考,您构建项目的方式是 ./configure &&制作。
我查看了 ./configure 选项,有一个 --enable-static-icu 但没有 --enable-static-boost 。
有一些可选标志可以直接传递给 C / C++ 编译器,但我不确定这些选项是什么。
另外,我在这里发帖的原因是我已经在他们的讨论论坛上发了帖子,但没有得到回复。还有一些其他问题已经发布了一个多月了,但没有人回复。所以我怀疑他们正在休息。
感谢您提供的任何意见:-D
I'm trying to build the open source project VMWare open view client. The problem I'm having is I can build it following their instructions however my build does not include all the depedencies and thus when I go to deploy it there is a failure saying missing libboost_signals-gcc41-1_34_1.so.1.34.1. According to their forums someone suggested the following try building boost with dynamic libraries disabled. The problem if I have no idea how to accomplish that.
Ideas?
As a point of reference the way in which you build their project is ./configure && make.
I've looked through the ./configure options and there is a --enable-static-icu but there is nothing for --enable-static-boost.
There are some optional flags that can be passed directly to the C / C++ compiler but I'm not sure what those options would be.
Additionally the reason I am posting here is I've made a post to their discussion forums and have gotten no response. There is also some other questions posted that are over a month old that no one has responded to. So I suspect they are taking a break of some sort.
Thanks for any input offered :-D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,不,你不使用“配置”来构建提升。你用bjam。
问题似乎是您没有将依赖库与可执行文件一起部署。尝试确保 boost 库也在目标机器上。
此外,如果您运行“configure --help”,任何使用“configure”构建 makefile 的项目都会生成完整的选项列表。
First off, no you don't use 'configure' to build boost. You use bjam.
The problem seems to be that you are not deploying the dependent libraries along with your executable. Try making sure that the boost libraries are on the target machine also.
Additionally, any project that uses 'configure' to build makefiles will spit up a complete list of options if you run 'configure --help'.
为了回答你的问题,静态库应该是默认构建的——你能仔细检查一下它们不存在吗?如果没有,您应该直接或通过编辑生成的 Makefile 将“link=static”添加到 bjam。
在更高的层面上,我不太确定你想做什么,或者为什么你得到这个建议。该错误消息意味着您的目标计算机上缺少 .so。为什么不复制它并调整LD_LIBRARY_PATH?因为即使您有 Boost 的静态库,您仍然需要调整程序以使用静态库,而不是共享库。
To answer your question, static libraries should be built by default -- could you please double check they are not there. If not, you should add 'link=static' to bjam, either directly or by editing the generated Makefile.
On a higher level, I'm not really sure what you're trying to do, or why you got this recommendation. The error message means you lack .so on your target machine. Why don't you copy it over and adjust LD_LIBRARY_PATH? Because even if you have static libraries for Boost, you'll still have to tweak your program to use static libraries, as opposed to shared.