问题:当DLL实际上已正确安装时,为什么应用程序找不到DLL“boost_thread-vc100-mt-1_46_1.dll”,而其他应用程序成功使用DLL?
问题:启动应用程序实例时,会出现以下错误消息: “程序无法启动,因为您的计算机缺少boost_thread-vc100-mt-1_46_1.dll。请尝试重新安装该程序以解决此问题。“
此消息让我困惑的几个原因:
其他细节: 我正在使用启用了CLR的MS VS 2010开发C ++ / CLI应用程序。
我正在使用Boost Thread库(版本1.46.1)。
根据有关使用Boost Thread和C ++ / CLI的帖子的建议,我将以下代码添加到我的一个头文件中:
#if defined(_MANAGED)
#define BOOST_USE_WINDOWS_H
#endif
#define BOOST_THREAD_USE_DLL
#include "boost/thread.hpp"
namespace boost {
struct thread::dummy {};
}
#pragma warning(push)
#pragma warning(disable:4793)
#include "boost/thread/mutex.hpp"
#pragma warning(pop)
#include "boost/thread/locks.hpp"
我感谢您的任何建议。谢谢。
答案 0 :(得分:0)
进入C:\Program Files(x86)\boost\boost_1_46_1\lib
无济于事。
它需要位于DLL搜索路径中。
使用boost的其他应用程序可能在主可执行文件旁边有DLL的本地副本。
答案 1 :(得分:0)
您需要将boost libs的位置添加到链接器搜索路径。
右键单击显示链接器错误的C ++项目,选择“属性”。转到链接器 - >一般然后在右侧面板中,您会看到其他库目录。放入保存boost_thread-vc100-mt-1_46_1.dll
的文件夹的路径 - 通常此文件夹将保存所有的升级库,并且类似于D:\Program Files\boost\boost_1_49_0\stage\lib
。
现在链接器在查找lib时会搜索该文件夹,一切都应该可以工作。