将错误与boost,VS2010和CMake相关联

时间:2013-06-26 01:16:33

标签: visual-studio-2010 qt opencv boost cmake

我已经搜索了这个答案的高低。我已经尝试过在Stack和其他网站上发布类似问题的建议。我的工具链包括一台带有Windows 7的x64机器,visual studio 2010,opencv 2.4,qt 4.8和boost。我使用CMake配置我的所有项目,CMake查找所有这些库并包含和创建我的visual studio项目。我编译了两个版本的boost,一个32位版本的命令行,并放在\ boost \ boost_1_47_0 \ lib \ win32中,一个64位编译在Windows SDK v7.1 64位编译器中并存储在\提升\ boost_1_47_0 \ LIB \ 64。除了boost之外,项目中的所有内容都可以很好地编译。我收到编译器错误:

fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-1_47.lib'

提醒一下,CMake正在处理我的所有链接,它正确地找到了这个lib并将其添加到visual studio项目中。我可以通过查看Properties-> Linker->命令行来验证这一点。这里,除了代表其他库的文件外,还列出了:

"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_1_47_0 \ lib \ x64目录添加到Properties-> Linker-> General-> Additional Library Dependencies来抑制此错误。这编译没有错误。但是,当我去运行应用程序时,我遇到了系统错误,告诉我:

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

任何见解都会令人难以置信。谢谢!

1 个答案:

答案 0 :(得分:0)

解决运行时错误:

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

set PATH=%PATH%;c:\users\chris\boost_regex-vc140.1.63.0.0\lib\native\address-model-32\lib

或将dll复制到PATH中已有的目录

见这里:https://msdn.microsoft.com/en-us/library/7d83bc18.aspx?f=255&MSPPError=-2147217396