본문 바로가기
개발

libgcc_s_dw2-1.dll 오류 해결 방법

by I!i어★떤☆날★에Ι!i 2022. 3. 29.
반응형

윈도우에서 gcc나 g++로 개발을 하고 배포할 때 libgcc_s_dw2-1.dll 에러가 발생하는 경우가 있다. 이것은 주로 MinGW를 사용하여 프로그램을 개발한 경우에 발생한다. 또한 웹사이트에서 다른 사람이 만든 프로그램을 내려받을 때에도 libgcc_s_dw2-1.dll에러가 발생할 수 있다.

libgcc_s_dw2-1.dll 에러의 해결방법에 대해서 알아보자.

 

 

* libgcc_s_dw2-1.dll 오류 발생 이유

 

g++ 프로그램이 필요해서 MinGW를 사용하여 g++ 환경을 만들고, 프로그램을 작성하여 컴파일을 하였다. 실행해서 문제없이 잘 동작하는 것을 충분히 확인한 후에 사람들에게 전달했지만 오류가 발생해서 동작하지 않는다는 대답을 들었다.

 다음과 같이 시스템 오류 메시지로 libgcc_s_dw2-1.dll가 없다고 출력되어 당황하였다. 이럴 경우에 어떻게 해야 할지 알아보자.

libgcc_s_dw2-1.dll 에러
libgcc_s_dw2-1.dll 에러

libgcc_s_dw2-1.dll 는 EagleGet에서 만든 동적 라이브러리로써, 처음에는 Windows10을 위해 개발되었다. 이 파일은 MinGW가 포함하고 있는 DLL 패키지이다. gcc나 g++ 프로그램에 참조되는 것이다.

내 컴퓨터에서만 잘 동작하는 이유는 PC의 환경 차이 때문이다. 내 컴퓨터에 MinGW 환경이 구성되어 있어서 libgcc_s_dw2-1.dll 파일을 참조할 수 있거나, 다른 사람의 컴퓨터가 윈도우 업데이트가 되어 있지 않아 문제가 발생했을 수도 있다.

 

MinGW 설치 매니저
MinGW 설치 매니저

MinGW가 생각보다 똑똑하지는 않은 것 같다.

 

 

* 다운로드 받은 파일의 libgcc_s_dw2-1.dll 에러 해결

 

인터넷 등에서 다운로드한 파일이 libgcc_s_dw2-1.dll에러 메시지를 출력할 때, 해결방법은 libgcc_s_dw2-1.dll 파일을 다운로드하여서 윈도우 시스템 폴더에 붙여 넣는 것이다. 문제는 위에서도 말했듯이 프로그램 실행 시 참조할  libgcc_s_dw2-1.dll 파일이 없기 때문에 오류가 발생하는 것이다. 즉, 다운로드한 프로그램이 실행될 때 libgcc_s_dw2-1.dll 파일이 PATH에 포함되어 있어야 한다.

 

해결방법은 libgcc_s_dw2-1.dll 파일을 다운로드 받아서 내 컴퓨터의 시스템 폴더에 복사해 넣는다.

 

윈도우별 위치는 다음과 같다.

Windows 95/98/Me   : C:\Windows\System

Windows NT/2000     : C:\WINNT\System32

Windows XP, Vista, 7  : C:\Windows\System32

Windows 10 :           : C:\Windows\SysWOW64\

 

아래 파일은 내 PC의 MinGW 폴더에 있는 libgcc_s_dw2-1.dll 파일이다. 이상한 파일은 아니나, 의심이 되면 인터넷에서 찾아 사용하시기를 권장드린다.

 

libgcc_s_dw2-1.dll
0.89MB

 

윈도우10 64bit에서 사용하고 있는 libgcc_s_dw2-1.dll 파일이다.

 

MinGW 설치폴더
MinGW 설치폴더

MinGW 설치 폴더에 가보면 dll 파일을 찾을 수 있을 것이다.

그래도 잘 동작하지 않는다면 윈도우 업데이트를 진행하자. 윈도우 시스템 환경이 맞지 않아 발생할 수도 있다.

 

이렇게 하면 해결이 되겠지만, 근본 원인은 역시나 프로그램을 배포한 사람이 해결해야 한다.

 

 

반응형

 

* 배포한 프로그램의 libgcc_s_dw2-1.dll 에러 해결

 

해결방법은 간단하다. 프로그램을 만들 때 libgcc_s_dw2-1.dll 파일을 프로그램에 포함시키는 것이다.

그렇게 만들기 위해서는 gcc 또는 g++의 static 옵션을 사용하자. 빌드 옵션에 다음을 추가하면 된다.

 

* 빌드 옵션 추가로 해결

옵션을 사용하여 빌드시에 static 라이브러리를 추가하자.

 

-static-libgcc -static-libstdc++

 

* 실제 사용 예제

다음은 TestProject 프로그램을 작성할 때 예제이다. 위의 빌드 옵션을 추가해 주면 된다.

 

g++ -static-libgcc -static-libstdc++ -o TestProject test_main.cpp test_sub.cpp

 

* 다른 옵션과 함께 사용할때 예제

배치파일 등에서 사용할 때는 다음과 같이 다른 define과 함께 옵션으로 정의해서 사용하면 관리가 편하다.

 

set TEST_PROJECT_COMFILE_OPTION=-D_COMPILER_GCC_TYPE_=1 -D_TESST_PROJECT_DEBUG_DISABLE_=1
set TEST_PROJECT_COMFILE_OPTION= %TEST_PROJECT_COMFILE_OPTION% -static-libgcc -static-libstdc++

g++ %TEST_PROJECT_COMFILE_OPTION% -o TestProject test_main.cpp test_sub.cpp

 

* 마무리

내 컴퓨터에서 프로그램이 잘 동작하는 것을 확인했다면,

꼭 다른 사람에게도 전달해서 오류 메시지가 출력되지 않는지 다시 한번 확인하자!!

 

 

 

 

 

 

 

 

반응형

댓글