9.3-win32 MinGW 실행 파일에 대해 누락된 libgcc_s_seh-1.dll 및 libstdc++-6.dll DLL을 정적으로 링크하는 방법

9.3-win32 MinGW 실행 파일에 대해 누락된 libgcc_s_seh-1.dll 및 libstdc++-6.dll DLL을 정적으로 링크하는 방법

MinGW를 사용하여 Linux에서 간단한 Windows 애플리케이션을 컴파일하고 싶습니다.

나는 그것을 다음과 같이 컴파일한다:

x86_64-w64-mingw32-g++ -L. -l:mathlib.dll -o fib main.cpp mathlib.h

fib그러면 N번째 피보나치 수를 계산하기 위해 가져온 함수를 사용하는 실행 파일이 생성됩니다 mathlib.dll.

이제 fibWindows에서 실행하면 불평 libgcc_s_seh-1.dll하고 libstdc++-6.dll잃습니다.

이러한 DLL을 Windows에 복사하면 모든 것이 잘 작동하지만 이러한 MinGW 종속성을 모든 실행 파일에 복사하고 싶지는 않습니다.

foo이러한 MinGW 종속성을 정적으로 연결하여 다른 DLL에 종속되지 않도록 하려면 어떻게 해야 합니까 mathlib.dll?

답변1

mathlib.dll및 옵션을 사용하여 -static-libgcc프로그램을 빌드합니다(필요한 경우) -static-libstdc++.

x86_64-w64-mingw32-g++ -static-libgcc -static-libstdc++ -L. -l:mathlib.dll -o fib main.cpp mathlib.h

이렇게 하면 외부 DLL에 의존하지 않는 libgcc바이너리가 생성됩니다 libstdc++.

관련 정보