我已经搜索了这个答案的高低。我已经尝试过在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
任何见解都会令人难以置信。谢谢!
答案 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