我有 4 个项目的 VS2013 解决方案。我的启动项目(A)依赖于其他 3 个项目(B、C 和 D)。所有 3 个项目都可以完美编译,没有链接错误。
我的启动项目要求libboost_filesystem-vc120-mt-gd-1_55.lib
但在查看所有项目的项目属性时,没有 lib 依赖项,甚至在源文件中也没有#pragma comment(lib)
. 此外,唯一使用的项目boost/filesystem.hpp
是 B,它编译时没有错误。
请注意,我拥有所有 boost 库,C:\Program Files (x86)\Boost\lib32-msvc-12.0
并且我使用的是 boost 1.56。
我的问题是:
- 当 B 是唯一使用 boost 文件系统的项目时,为什么 A 要求使用 boost 库?
- 当我有 boost 1.56 时,为什么 A 要求 boost 1.55 库?
- 如果 B 是唯一使用的项目
boost::filesystem
并且可以完美编译,为什么会出现此链接器错误? - 为什么该依赖项在项目属性或源代码中没有显式的 lib 依赖项?
我还查看了文件系统包含下的所有头文件,但没有看到#pragma comment(lib)