【发布时间】:2016-11-13 14:00:44
【问题描述】:
我正在尝试使用 VS2015 为当前基于 VS2013 的项目构建依赖项。
它们中的大多数都在构建没有问题,无论是原样还是带有一些补丁,但我对 OpenImageIO 1.4.12 完全不知所措。
我正在将参数传递给 cmake 和 msbuild,为所有内容设置使用 VS2015,并且确实生成的解决方案文件将“vc140_xp”指示为所选工具集。
但是在链接时我收到这样的错误,表明某处有对使用 VS2013 构建的 boost 库的引用:
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc120-mt-1_56.lib' [F:\...\deps\x64\oiio-Release-1.4.12\build\src\libOpenImageIO\OpenImageIO.vcxproj]
当然,我在另一个地方有一堆 libboost_xxx-vc140-mt-1_56.lib,因为我也是用 VS2015 构建的。解决方案文件中设置的依赖项也正确引用 libboost_xxx-vc140-mt-1_56.lib 文件和正确的路径,并且通过在所有 OpenImageIO 构建树中执行 FINDSTR 我无法找到对旧 VS 版本的任何引用。
但是相同的命令列出了很多包含这些引用的 .obj 文件,例如(为了更好的可读性,放在多行上):
build\src\libOpenImageIO\OpenImageIO.dir\Release\xmp.obj:/FAILIFMISMATCH:"_CRT_STDIO_ISO_WIDE_SPECIFIERS=0"
libboost_regex-vc120-mt-1_56.lib
libboost_thread-vc120-mt-1_56.lib
libboost_date_time-vc120-mt-1_56.lib
libboost_system-vc120-mt-1_56.lib
libboost_chrono-vc120-mt-1_56.lib
是因为这些引用导致链接无法查找不同版本的 boost 库吗?这些参考从哪里来?我怎样才能摆脱它们,因为显然它们在我的配置中无处可寻?
【问题讨论】:
-
这是因为您构建的 boost 版本早于 VS2015。她应该有帮助的答案:visual studio asks for wrong boost libraries
-
这确实是我的问题的原因和解决方案。我没有意识到我的问题的根源可能在于 boost 本身,而不是我正在构建的库。
标签: visual-c++ boost visual-studio-2015