Boost.test和对Boost.thread的依赖?

时间:2016-12-21 03:53:02

标签: windows multithreading testing boost dependencies

我试图在Windows版本1.62.0上构建Boost.test。我正在构建--with-test,我的输出文件是libboost_unit_test_framework-vc140-mt-gd-1_62.lib / dll

一切都很顺利,但是当我在项目中添加unit_test.hpp标头时,链接器会认为无法找到libboost_thread-vc140-mt-gd-1_62.lib。

我很惊讶,我的印象是,当我构建--with-test,使用b2时,Boost.test的所有依赖项都将被构建,我的意思是我看到它构建了计时器,计时器和系统,它还应该构建线程吗?

我进行了双重和三重检查以查看我的项目是否未引入thread.hpp标头 - 它没有。它被设置为自动链接库。

我也跑了BCP

bcp --boost = b:\ temp \ boost_1_62_0 - list test

在boost / test文件夹上的

,它似乎确实列出了线程文件:

升压\ thread.hpp
....
库\螺纹\编译\ has_atomic_flag_l
库\螺纹\编译\ Jamfile.v2
库\线程的\ src \ future.cpp
库\线程的\ src \并行线程\ once.cpp
库\线程的\ src \并行线程\ once_atomic
库\线程的\ src \并行线程\ thread.cpp
库\线程的\ src \ tss_null.cpp
库\线程的\ src \ WIN32 \ thread.cpp
库\线程的\ src \ WIN32 \ tss_dll.cpp
库\螺纹\ SRC \ WIN32 \ tss_pe.cpp

我有一种感觉,我不完全了解发生了什么。

Boost.unit是否依赖于Boost.thread?

如果是这样,为什么它不会由b2自动构建。如果不是,那么依赖性将来自......

谢谢,

安杰伊

1 个答案:

答案 0 :(得分:1)

  

我的印象是,当我使用b2构建--with-test时,将构建Boost.test的所有依赖项......

你的印象不对; --with-test只构建test库。你显然也需要构建boost thread

我很遗憾地说我不知道​​是否还有其他依赖项,因为我总是执行boost的完整版本,并使用auto-linking执行Visual Studio。 ..

注意:对于必须使用动态链接构建Visual Studio boost thread,因此请将link=shared添加到b2命令。

有关更完整的说明,请参阅How do I build boost on Windows?