为什么其他电脑需要一些DLL文件,而我自己的电脑却不需要? 我在C++中编写了一些程序。我可以在我的电脑上运行它。但是,如果我试图在其他电脑上打开.exe文件,总会因为缺少DLL而出错。如果程序很短,则没有错误。我不明白为什么

为什么其他电脑需要一些DLL文件,而我自己的电脑却不需要? 我在C++中编写了一些程序。我可以在我的电脑上运行它。但是,如果我试图在其他电脑上打开.exe文件,总会因为缺少DLL而出错。如果程序很短,则没有错误。我不明白为什么,c++,windows,dll,64-bit,mingw,C++,Windows,Dll,64 Bit,Mingw,您的编译器经常附带DLL 简单的操作,比如打印,在某些情况下调用应用程序的入口点(比如main),是由库完成的,并不总是由操作系统提供。在Windows上,您应该使用“可重新分配”的C++运行时。 您的编译器经常使用DLL。 简单的操作,比如打印,在某些情况下调用应用程序的入口点(比如main),是由库完成的,并不总是由操作系统提供。在Windows上,您应该使用“可重新分配”的C++运行时。< /P>计算机不需要它们吗?你确定吗?也许这不是抱怨,因为你的电脑里有这些文件。不管怎样,我们谈论的是

您的编译器经常附带DLL


简单的操作,比如打印,在某些情况下调用应用程序的入口点(比如main),是由库完成的,并不总是由操作系统提供。在Windows上,您应该使用“可重新分配”的C++运行时。

您的编译器经常使用DLL。
简单的操作,比如打印,在某些情况下调用应用程序的入口点(比如main),是由库完成的,并不总是由操作系统提供。在Windows上,您应该使用“可重新分配”的C++运行时。< /P>计算机不需要它们吗?你确定吗?也许这不是抱怨,因为你的电脑里有这些文件。不管怎样,我们谈论的是什么DLL?可能是因为您安装了编译器,而另一台计算机没有安装编译器,或者有不同的版本。编译器附带的DLL位于
PATH
环境变量的一个文件夹中。当在可执行文件所在的文件夹中找不到dll时,会自动搜索这些dll。哪些dll?如果您有
FOO.EXE
BAR.DLL
,则可以使用
DEPENDS.EXE
查看其DLL依赖项。正如其他人提到的,您很可能依赖于C运行时。在VisualStudio中,您有/MT标志,允许您在二进制文件中嵌入C运行时(静态链接)。我不确定MinGW是否也可以使用该标志。这可能会给你一些启示。你的电脑不需要它们吗?你确定吗?也许这不是抱怨,因为你的电脑里有这些文件。不管怎样,我们谈论的是什么DLL?可能是因为您安装了编译器,而另一台计算机没有安装编译器,或者有不同的版本。编译器附带的DLL位于
PATH
环境变量的一个文件夹中。当在可执行文件所在的文件夹中找不到dll时,会自动搜索这些dll。哪些dll?如果您有
FOO.EXE
BAR.DLL
,则可以使用
DEPENDS.EXE
查看其DLL依赖项。正如其他人提到的,您很可能依赖于C运行时。在VisualStudio中,您有/MT标志,允许您在二进制文件中嵌入C运行时(静态链接)。我不确定MinGW是否也可以使用该标志。这可能会给我们一些启示。我该怎么办?我用过,也用过。我在两台不同的电脑上测试了该文件,缺少的DLL不同(gxx_personality_v0和libgcc_s_dw2.1)@taketakeshii-See--“mingw运行时:默认C运行时库的头文件和导入库(也称为msvcrt),这是在Microsoft Windows操作系统上运行的MinGW编译程序所必需的。您必须将此软件包与gcc core一起安装,才能获得功能正常的编译器套件。“--看起来MinGW使用的是msvcrt可再发行文件。您需要安装哪个版本取决于您的确切MinGW版本。问题没有问“我需要做什么才能让它工作”,它只是问“为什么它坏了?”@Taketakeshii我可以回答“为什么它坏了”,但我不是mingw方面的专家,不知道如何获得正确的可再发行软件包等。请问一个新问题。在其中,包括尽可能多的关于mingw的版本信息、显示问题的代码以及错误消息的引用文本副本。有mingw经验的人可能会告诉您需要什么可再发行的软件包。@taketakeshii“我应该做什么?”-您应该随应用程序一起分发所需的DLL。这通常是通过让您的安装程序包含Visual Studio可再发行安装程序并将其作为应用程序安装的一部分运行来实现的。但是,您也可以将安装程序中所需的文件捆绑在一起,然后将它们放到应用程序安装到的同一目录中。@JesperJuhl,有时您还可以“静态链接”所需的库。我该怎么办?我用过,也用过。我在两台不同的电脑上测试了该文件,缺少的DLL不同(gxx_personality_v0和libgcc_s_dw2.1)@taketakeshii-See--“mingw运行时:默认C运行时库的头文件和导入库(也称为msvcrt),这是在Microsoft Windows操作系统上运行的MinGW编译程序所必需的。您必须将此软件包与gcc core一起安装,才能获得功能正常的编译器套件。“--看起来MinGW使用的是msvcrt可再发行文件。您需要安装哪个版本取决于您的确切MinGW版本。问题没有问“我需要做什么才能让它工作”,它只是问“为什么它坏了?”@Taketakeshii我可以回答“为什么它坏了”,但我不是mingw方面的专家,不知道如何获得正确的可再发行软件包等。请问一个新问题。在其中,包括尽可能多的关于mingw的版本信息、显示问题的代码以及错误消息的引用文本副本。有mingw经验的人可能会告诉您需要什么可再发行的软件包。@taketakeshii“我应该做什么?”-您应该随应用程序一起分发所需的DLL。这通常是通过让您的安装程序包含Visual Studio可再发行安装程序并将其作为应用程序安装的一部分运行来实现的。但您也可以将安装程序中所需的文件捆绑在一起,然后将它们放到应用程序安装到的同一目录中。@JesperJuhl,有时您还可以“静态链接”所需的库。