c++ - 如何将boost线程(源文件)集成到我自己的项目中

标签 c++ boost dll cmake boost-thread

我想要的是把boost线程的源文件(所有必要的头文件和源文件)放到我自己的项目中,这样其他人就不需要再配置对boost的支持了。构建系统由 CMake 制作。

最近想把boost thread更新到1.53的实际版本,但是新版本的boost thread无法在windows中构建。(在linux下可以)

我集成boost线程的做法很简单,就是把boost::thread需要的所有源文件放在一个文件夹中(包括boost::system的源文件),然后把这些源文件做一个DLL . (使用构建选项 BOOST_THREAD_BUILD_DLL)

但是当上面构建的 dll 库链接到我自己的代码时,我得到了一些 Unresolved boost::system 引用错误,例如:

"unresolved reference to error_category xxxx"

但是构建的库包含来自boost::system的源文件,我不知道为什么会出现这样的错误。你们能给我一些提示吗?非常感谢,我已经花了很多时间来研究这个令人作呕的问题:(

最佳答案

正如 Johannes 在他的评论中指出的那样,BCP工具的设计正是为了做到这一点:

The bcp utility is a tool for extracting subsets of Boost, it's useful for Boost authors who want to distribute their library separately from Boost, and for Boost users who want to distribute a subset of Boost with their application.

关于c++ - 如何将boost线程(源文件)集成到我自己的项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15243299/

相关文章:

c++ - 返回 boost multi_index 接口(interface)时 C++ 中的 const 混淆

C++ & boost : encode/decode UTF-8

dllimport 无法定位 dll,即使它在 PATH 中

c++ - 通过 psapi.dll 调用 GetModuleFileNameEx 不起作用,但为什么呢?

C++ "this"与调用的对象方法不匹配

c++ - 如何在 DirectX 上沿 XYZ 轴旋转对象?

c++ - 如何处理 "Error in function boost::math::cyl_bessel_k<d>(d,d): numeric overflow"

windows - 是否有与 -rpath 链接器标志等效的 Windows/MSVC?

c++ - 取消引用指向其类内对象的指针

c++ - 有没有办法让这段代码更快?