Visual studio 2010 使用boost、VS2010和CMake链接错误

Visual studio 2010 使用boost、VS2010和CMake链接错误,visual-studio-2010,qt,opencv,boost,cmake,Visual Studio 2010,Qt,Opencv,Boost,Cmake,我到处寻找这个答案。我尝试过在Stack和其他网站上发布类似问题的建议。我的工具链由一台装有Windows7、VisualStudio2010、opencv 2.4、Qt4.8和boost的x64机器组成。我使用CMake配置我的所有项目,CMake查找所有这些库,包括并创建我的VisualStudio项目。我已经编译了两个版本的boost,一个32位版本在命令行中编译并放在\boost\boost\u 1_47_0\lib\win32中,另一个64位版本在Windows SDK v7.1 64

我到处寻找这个答案。我尝试过在Stack和其他网站上发布类似问题的建议。我的工具链由一台装有Windows7、VisualStudio2010、opencv 2.4、Qt4.8和boost的x64机器组成。我使用CMake配置我的所有项目,CMake查找所有这些库,包括并创建我的VisualStudio项目。我已经编译了两个版本的boost,一个32位版本在命令行中编译并放在\boost\boost\u 1_47_0\lib\win32中,另一个64位版本在Windows SDK v7.1 64位编译器中编译并存储在\boost\boost\u 1_47_0\lib\x64中。除了boost之外,项目中的所有内容都编译得很好。我得到一个编译器错误:

fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-1_47.lib'
作为提醒,CMake正在处理我的所有链接,它正确地定位了这个库并将其添加到VisualStudio项目中。我可以通过查看属性->链接器->命令行来验证这一点。这里,除了表示其他库的文件外,还列出了:

"C:\Tools\boost\boost_1_47_0\lib\x64\boost_filesystem-vc100-mt-1_47.lib"
"C:\Tools\boost\boost_1_47_0\lib\x64\boost_program_options-vc100-mt-1_47.lib"
"C:\Tools\boost\boost_1_47_0\lib\x64\boost_date_time-vc100-mt-1_47.lib"
"C:\Tools\boost\boost_1_47_0\lib\x64\boost_thread-vc100-mt-1_47.lib"
我可以通过手动将boost\boost\u 1\u 47\u 0\lib\x64目录添加到属性->链接器->常规->其他库依赖项来抑制此错误。这样编译不会出错。但是,当我运行应用程序时,遇到一个系统错误,它告诉我:

The program can't start because boost_filesystem-vc100-mt-1_47.dll is missing from your computer. Try reinstalling the program to fix this problem.
在这个/x64目录中,我有:

boost_filesystem-vc100-mt-1_47.dll
boost_filesystem-vc100-mt-1_47.lib
libboost_filesystem-vc-100-mt-1_47.dll

任何洞察都将不胜感激。谢谢

要解决运行时错误:

将dll的位置添加到PATH环境变量。 例如,在我的机器上:

set PATH=%PATH%;c:\users\chris\boost_regex-vc140.1.63.0.0\lib\native\address-model-32\lib
或者将dll复制到路径中已存在的目录中


请参见此处:

与此问题类似或等效:?是的,这似乎与自动动态链接的另一个问题中的问题相同。