【发布时间】:2019-07-25 12:13:22
【问题描述】:
我正在构建一个项目,该项目需要提升库。我在VS2017中编译了boost库1_70并生成了库文件。我正在使用 VS2017 构建我的项目,所以我的工具集是 V141。但是,虽然链接编译器需要 V140。
LINK:致命错误 LNK1104:无法打开文件 'libboost_date_time-vc140-mt-gd-1_58.lib'
我尝试了以下方法,
- 头文件中的包含路径正确。为了确认这一点,我只是在其中一个 cpp 文件中输入了 BOOST_LIB_VERSION 并在按下 F2 的同时,将我带到了 boost 的 version.hpp 文件。
#define BOOST_LIB_VERSION "1_70"
- 我刚刚打开了 boost 的 auto_link.hpp 文件,我可以看到 v141 工具集已启用。
定义 BOOST_LIB_TOOLSET "vc141"
- 在附加的库目录中,我可以看到提供了 boost 路径。我也通过怀疑宏给出了绝对路径。 $(THIRDPARTY_DIR)\boost\include
我希望在链接时搜索 V141 和正确的 boost 库。
【问题讨论】:
-
您是否出于某种原因有多个用于
AdditionalIncludeDirectories和/或AdditionalLibraryDirectories的提升目录?您是否还尝试关闭所有 VisualStudio 实例并再次重新启动它(有时传递给 MSBuild 的缓存未更新)?还要检查Inherited values 中的这些变量(在导致此类行为的不同引用属性表中有两个版本的 boost)。 -
在 include 目录中正好指向了两个版本的 boost。谢谢。
-
@Zaiborg 将其作为答案发布。