VS2013 LNK1104要求不同版本的外部lib(boost)

VS2013 LNK1104 asking for different version of external lib (boost)

本文关键字:lib 外部 boost 版本 LNK1104 VS2013      更新时间:2023-10-16

我有一个包含4个项目的VS2013解决方案。我的启动项目(A)依赖于其他3个项目(B、C和D)。所有3个项目都完美编译,没有链接错误。

我的启动项目要求libboost_filesystem-vc120-mt-gd-1_55.lib,但当查看所有项目的项目属性时,没有库依赖项,甚至在#pragma comment(lib)的源文件中也没有。此外,唯一使用boost/filesystem.hpp的项目是B,它的编译没有错误。

注意,我在C:Program Files (x86)Boostlib32-msvc-12.0下有所有的boost库,我使用的是boost 1.56。

我的问题是:

  1. 当B是唯一使用boost文件系统的项目时,为什么A要求boost lib
  2. 当我有1.56的增益时,为什么A要求1.55的增益
  3. 如果B是唯一一个使用boost::filesystem的项目,并且它编译得很好,为什么我会收到这个链接器错误
  4. 为什么该依赖项在项目属性或源代码中没有显式的lib依赖项

我还查看了文件系统includes下的所有头文件,没有发现#pragma comment(lib)

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

接下来尝试编译器选项/showIncludes。它将为您提供包含完整路径的文件树。