我一直在搜寻这个答案。我已经尝试过针对Stack和其他网站上发布的类似问题的建议。我的工具链包括一台x64机器,该机器带有Windows 7,Visual Studio 2010,opencv 2.4,qt 4.8和boost。我使用CMake配置我的所有项目,该软件会找到所有这些库,并包括并创建我的Visual Studio项目。我已经编译了两个版本的boost,一个是在命令行中构建的32位版本,并放置在\ boost \ boost_1_47_0 \ lib \ win32中,另一个是在Windows SDK v7.1 64位编译器中编译并存储在其中的64位。 \ boost \ boost_1_47_0 \ lib \ x64。除了boost之外,项目中的所有内容都可以正常编译。我收到编译器错误:
fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-1_47.lib'
提醒一下,CMake正在处理我的所有链接,并正确定位了该库并将其添加到Visual Studio项目中。我可以通过查看Properties-> Linker-> Command Line来验证这一点。在这里,除了代表其他库的文件外,它还列出了:
"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
任何见解将令人难以置信的赞赏。谢谢!
最佳答案
解决运行时错误:
将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
关于visual-studio-2010 - 将错误与boost,VS2010和CMake链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310069/