您的计算机缺少c++ boost线程

C++ boost thread is missing from your computer

本文关键字:c++ boost 线程 计算机      更新时间:2023-10-16

当我尝试使用g++编译器在代码块上运行程序时,我遇到了这个非常奇怪的问题。我已经安装了boost和使用它,直到一个星期前,我从来没有任何问题。今天,我回到一个项目,我正在工作,突然我得到以下错误信息,当我试图运行它

程序无法启动,因为您的计算机中缺少libboost_thread-mgw47-mt-1_53.dll。尝试重新安装程序以解决此问题。

现在我已经在这个程序中使用了boost线程,所以我不知道为什么我得到这个。同样奇怪的是,boost线程可以在我的其他项目中工作。

我该如何着手解决这个问题?一切似乎都到位,路径变量设置,编译器,链接器选项设置等…据我所知,自从我上次成功运行这个程序以来,没有任何变化。我今天确实更新了Visual Studio,但我认为这不会有任何影响。我不确定我还能提供什么信息,因为我不知道为什么会发生这种情况。.dll文件确实存在,我已经尝试将其移动到工作目录,但仍然得到相同的错误。

谁有什么建议,我该如何去解决这个问题?

这个项目中的编译器正在动态链接boost线程库,

可能在链接器选项中有一些配置错误的设置,或者你的代码使用了dllimport而不是在编译时解析的"正常"函数(dllimport在运行时解析函数-它无法在所需的库中找到它们,所以你会得到一个错误)。

你的其他项目工作,因为他们静态链接boost线程库(提供正确的boost预处理器定义的静态链接/编译和包括相应的cpp/lib文件的线程库),所以它被包含在程序中。

我明白了。(再次注意,我使用的是代码块)

我在全局编译器和链接器设置中设置了所有内容(我认为这就足够了)。我在单个项目编译器设置中设置了所有内容,但正在工作的项目在链接器设置中也有一些额外的东西。所以我设置了一切,除了项目->构建选项->搜索目录->链接器部分的设置,选择项目名称,而不是调试/发布。我加了……美元(# boost.lib)............ boost_1_53_0 lib 阶段现在一切都好了

有点奇怪,全局编译器的设置不包括单个项目的设置,但这就是。