0

我有 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。

我的问题是:

  1. 当 B 是唯一使用 boost 文件系统的项目时,为什么 A 要求使用 boost 库?
  2. 当我有 boost 1.56 时,为什么 A 要求 boost 1.55 库?
  3. 如果 B 是唯一使用的项目boost::filesystem并且可以完美编译,为什么会出现此链接器错误?
  4. 为什么该依赖项在项目属性或源代码中没有显式的 lib 依赖项?

我还查看了文件系统包含下的所有头文件,但没有看到#pragma comment(lib)

4

1 回答 1

0

首先,我建议从头开始重建所有项目。

接下来尝试编译器选项/showIncludes。它会给你包含完整路径的文件树。

于 2014-10-15T16:57:13.213 回答