【发布时间】:2013-03-06 09:20:13
【问题描述】:
我想要的是将关于boost线程的源文件(所有必要的头文件和源文件)放入我自己的项目中,这样其他人就不需要再配置对boost的支持了。构建系统由 CMake 制作。
最近我正在尝试将boost线程更新到实际版本1.53,但是新版本的boost线程无法在windows中内置。(它在linux下工作)
我集成boost线程的工作很简单,我只是把boost::thread需要的所有源文件放在一个文件夹中(包括boost::system的源文件),并为所有这些源文件制作一个DLL . (使用构建选项 BOOST_THREAD_BUILD_DLL)
但是当上面构建的 dll 库链接到我自己的代码时,我得到了一些未解决的 boost::system 引用错误,例如:
"unresolved reference to error_category xxxx"
但是构建的库包含来自 boost::system 的源文件,我不知道为什么会出现这样的错误。你们能给我一些提示吗?非常感谢,我已经花了很多时间来解决这个令人作呕的问题:(
【问题讨论】:
-
为什么不简单地将 boost 线程列为依赖项,并让用户安装它? (或使用您的代码发布编译版本)
-
boost 有一个自己的工具可以实际工作。我以前用过。
-
谢谢大家。这不是我自己决定的,在我看来,我想将 boost 线程列为外部依赖项:( @JohannesSchaub-litb 你能告诉这个工具吗?
-
您想重新分发不依赖于 Boost 的源代码,还是重新分发包含 boost 线程的可执行文件?在最新情况下,只需使用到 Boost 库的静态链接
-
@PaoloBrandoli 我想在不依赖 Boost 的情况下重新分发源代码,boost::thread 将在项目内部构建。
标签: c++ boost dll cmake boost-thread