C++ CPP文件运行,但不';编译为exe时无法工作

C++ CPP文件运行,但不';编译为exe时无法工作,c++,exe,allegro,C++,Exe,Allegro,我使用Microsoft Visual Studio 2010和Allegro创建了一个cpp文件。它在Visual Studio界面中运行良好,但当我将其编译为exe时,它会显示: “由于计算机中缺少allegro-5.0.10-monolith-md-debug.dll,程序无法启动。请尝试重新安装程序以解决此问题。” 我在我用来编写代码并调试它的同一台计算机上运行exe,所以它不应该是缺少dll的错误。应该吗?这对我来说毫无意义。。。。我以前编译过其他exe,它们确实在其他计算机上运行,A

我使用Microsoft Visual Studio 2010和Allegro创建了一个cpp文件。它在Visual Studio界面中运行良好,但当我将其编译为exe时,它会显示:

“由于计算机中缺少allegro-5.0.10-monolith-md-debug.dll,程序无法启动。请尝试重新安装程序以解决此问题。”

我在我用来编写代码并调试它的同一台计算机上运行exe,所以它不应该是缺少dll的错误。应该吗?这对我来说毫无意义。。。。我以前编译过其他exe,它们确实在其他计算机上运行,Allegro one作为cpp文件运行时效果很好,但是当Allegro文件作为exe运行时,它说我没有monolith


为什么文件作为exe而不是cpp失败?

这就是我的工作原理:

在配置属性->调试中时 -添加路径=c:\allegro\bin;%环境变量的路径%

我有完全相同的错误,程序告诉我它找不到monolith DLL文件。我注意到的不是
PATH=c:\allegro\bin;%PATH%
我把
PATH=c:\allegro\bin:%PATH%
放在了一起。区别不容易发现

我放了一个
而不是
在bin和%PATH%之间


这是一个很容易犯的错误,但是它让我心痛了大约3个小时。

这可能意味着Visual Studio提供了包含
allegro-5.0.10-monolith-md-debug.dll的路径,因此在IDE中运行它可以成功加载它。简单的解决方法是在您的计算机上找到丢失的dll,并将其复制到与exe相同的位置。当您在IDE中运行程序时,默认工作目录或加载dll文件的位置与项目所在的位置相同。如果导航到debug或release目录并双击它,那么工作目录就是debug或release目录,很可能不是它需要的dll所在的位置。正如其他人所指出的,这是所需的.dll文件必须位于dll的搜索路径上的问题。有关DLL搜索路径的详细信息,请参阅。若要清除此问题,作为编译单元的cpp无论如何都不会运行,可执行文件会运行,这是Windows上的PE/COFF格式。当您构建独立的可执行文件时,您可能希望切换到发布模式,因此它不会尝试使用调试DLL。不确定它是否会有帮助,但可能会有帮助(例如,如果调试DLL位于仅让VS知道的路径上,但发布DLL位于该路径上)。