libgcc_s_dw2-1.dll的功能是什么?

时间:2018-11-15 15:08:02

标签: c gcc dll compilation codeblocks

我用代码块编写了以下程序

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, c;
    a = 5;
    b = 6;
    c = a+b;
    printf("Hello world!\n");
    return 0;
}  

用于调试和发行版本。 exe文件是在相应的bin \ debug和bin \ release文件夹中创建的,并且从代码块运行时程序运行正常。

但是,当我尝试执行bin \ debug或bin \ release版本的exe文件时,出现libgcc_s_dw2-1.dll is missing from your computer.错误。

搜索libgcc_s_dw2-1.dll仅引出其他帖子,询问如何解决此问题,建议的解决方案是将路径添加到MinGW安装中某个位置的libgcc_s_dw2-1.dll路径。系统路径,或在编译过程中将dll文件静态链接到程序。

我的问题是,为什么这是必要的?这是一个非常简单的hello world程序。该文件位于codeblocks项目中,文件扩展名为.c(main.c,因此我猜gcc会自动调用C编译器,而与cpp编译器编译C代码没有任何关系吗?),并且全新安装MinGW和代码块后,编译器设置将保留为其默认值。由于该程序非常简单,因此我假设它在其他任何较旧版本的编译器中也应以相同的方式工作。

那么此dll文件的用途是什么?编译该程序时,到底发生了什么?假设我编译了上面的hello world程序,并将exe文件分发给我的朋友们。我应该如何知道在编译过程中应该静态链接dll文件?

0 个答案:

没有答案