2

我已经搜索了这个答案的高低。我已经尝试过对 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 中,一个 64 位版本在 Windows SDK v7.1 64 位编译器中编译并存储在\升压\升压_1_47_0\lib\x64。除了 boost 之外,项目中的所有内容都可以正常编译。我得到一个编译器错误:

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

提醒一下,CMake 正在处理我的所有链接,它会正确定位该库并将其添加到 Visual Studio 项目中。我可以通过查看属性->链接器->命令行来验证这一点。在这里,除了代表其他库的文件之外,它还列出了:

"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

任何见解都将不胜感激。谢谢!

4

1 回答 1

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

于 2017-01-24T05:15:08.900 回答