link 链接器-> 输入中不存在的库错误
link error for library which doesn't exist in Linker->Input
我正在将 Berkley 的 Caffe 编译成静态库、MT、MSVC 12 (VS2013) 并将其链接到 dll。
它工作正常。
现在我正在尝试使用 Intel C++ 2015 编译器对其进行编译 - 静态库构建正常,但依赖的 dll 失败并出现以下链接器错误:
fatal error LNK1104: cannot open file
'libboost_thread-iw-mt-s-1_58.lib'
我的 Boost 构建中确实没有这样的库,但我不知道这种依赖性来自哪里。除了编译器我没有更改任何其他设置,而且我在我的 dll 的 Linker->Input->Additional dependencies 的 Caffe 中都找不到那个 Boost lib。
我该如何解决这个问题?
谢谢!
已复制:
When building an application that uses the Boost libraries with the
Intel® C++ Compiler, you may get linker errors like the ones shown
below due to incorrect libraries being linked to the application:
fatal error LNK1104: cannot open file
'libboost_thread-iw-mt-1_33_1.lib' fatal error LNK1104: cannot open
file 'libboost_thread-iw-1_33_1.lib' ... The root cause is missing
Boost libraries for the Intel® C++ Compiler.
The preferred solution is to recompile all required Boost libraries
with the Intel® C++ Compiler (libraries with the infix "iw" are
created because of this). However, this is not mandatory. The
libraries provided for the different Microsoft Visual Studio* versions
are safe to use as well. Perform the following steps to use them
instead:
Open the Boost configuration file "auto_link.hpp". Search for 1
elif defined(__ICL) 2 3 4
// Intel C++, no version number: 5 6
# define BOOST_LIB_TOOLSET "iw" Change "iw" depending on which Microsoft Visual Studio version you're using:
"vc71": Microsoft Visual Studio .NET 2003 "vc80": Microsoft Visual
Studio 2005 "vc90": Microsoft Visual Studio 2008 "vc100": Microsoft
Visual Studio 2010 "vc110": Microsoft Visual Studio 2012 "vc120":
Microsoft Visual Studio 2013 "vc140": Microsoft Visual Studio 2015
Rebuild your application to resolve the linker errors.
我正在将 Berkley 的 Caffe 编译成静态库、MT、MSVC 12 (VS2013) 并将其链接到 dll。
它工作正常。
现在我正在尝试使用 Intel C++ 2015 编译器对其进行编译 - 静态库构建正常,但依赖的 dll 失败并出现以下链接器错误:
fatal error LNK1104: cannot open file 'libboost_thread-iw-mt-s-1_58.lib'
我的 Boost 构建中确实没有这样的库,但我不知道这种依赖性来自哪里。除了编译器我没有更改任何其他设置,而且我在我的 dll 的 Linker->Input->Additional dependencies 的 Caffe 中都找不到那个 Boost lib。
我该如何解决这个问题?
谢谢!
已复制:
When building an application that uses the Boost libraries with the Intel® C++ Compiler, you may get linker errors like the ones shown below due to incorrect libraries being linked to the application:
fatal error LNK1104: cannot open file 'libboost_thread-iw-mt-1_33_1.lib' fatal error LNK1104: cannot open file 'libboost_thread-iw-1_33_1.lib' ... The root cause is missing Boost libraries for the Intel® C++ Compiler.
The preferred solution is to recompile all required Boost libraries with the Intel® C++ Compiler (libraries with the infix "iw" are created because of this). However, this is not mandatory. The libraries provided for the different Microsoft Visual Studio* versions are safe to use as well. Perform the following steps to use them instead:
Open the Boost configuration file "auto_link.hpp". Search for 1
elif defined(__ICL) 2 3 4
// Intel C++, no version number: 5 6 # define BOOST_LIB_TOOLSET "iw" Change "iw" depending on which Microsoft Visual Studio version you're using:
"vc71": Microsoft Visual Studio .NET 2003 "vc80": Microsoft Visual Studio 2005 "vc90": Microsoft Visual Studio 2008 "vc100": Microsoft Visual Studio 2010 "vc110": Microsoft Visual Studio 2012 "vc120": Microsoft Visual Studio 2013 "vc140": Microsoft Visual Studio 2015
Rebuild your application to resolve the linker errors.