본문 바로가기
개발 언어/Qt

Qt5.4 정적 빌드하기

by 주호파파 2019. 4. 30.
728x90
반응형

전에 Qt4.8 버전에서의 정적빌드하는 방법에 대해 설명했는데,

이번에는 Qt5.4버전에서의 정적빌드에 대해 알아보겠습니다.

Qt4.8버전과 대략적으로 비슷하지만 약간 달라진 부분이 있습니다.

이제 설명을 시작하겠습니다.


http://www.qt.io/download-open-source/# 


먼저 위의 링크로 접속해서 Qt5.4 offline을 다운받아야 합니다.


 


하단에 Windows Host 제목의 Qt5.4.0 for Windows 32bit (MinGW 4.9.1, 852MB) 를 다운받아 설치합니다.

설치과정은 별다른 설정이 없으므로 생략합니다.


http://download.qt.io/official_releases/qt/5.4/5.4.0/single/

이제 위의 링크로 접속해서 소스코드를 다운받습니다.


qt-everywhere-opensource-src-5.4.0.zip


과 같은 이름의 파일이 있습니다.

해당 파일을 다운받습니다.


위의 Qt5.4 오프라인 버전을 설치하면 C:\Qt\Qt5.4.0\5.4폴더가 있습니다.

이 위치에 qt5-opensource-src-5.4.0.zip파일을 압축해제 해줍니다.


 


그러면 위와 같이 폴더가 존재하게 됩니다.

(위의 android_armv7은 아마 안보일겁니다. 제가 안드로이드버전을 설치해서 보이는 겁니다.)


C:\Qt\Qt5.4.0\5.4\qt-everywhere-opensource-src-5.4.0\qtbase\mkspecs\win32-g++


위의 경로에 보면 qmake.conf파일이 있습니다.

해당 파일을 메모장으로 열어줍니다.


중간에 QMAKE_LFLAGS가 있습니다.


QMAKE_LFLAGS            = -static -static-libgcc


다음과 같이 수정해줍니다.

그리고 저장한 후 닫아줍니다.


 


시작에서 Qt 프롬프트를 실행합니다.

위의 사진과 같은 곳에 Qt5.4.0 프롬프트가 존재할겁니다.(사진은 퍼온겁니다.)


콘솔창에 다음과 같이 입력합니다.


cd "C:\Qt\Qt5.4.0\5.4\qt-everywhere-opensource-src-5.4.0\qtbase"

그리고 다음을 입력합니다.


configure -static -release -opengl desktop -opensource


그리고 묻는 창에 y를 입력하여 configure를 진행합니다.

1분 내외로 작업이 끝나는데 이후에 다음과 같이 입력합니다.


mingw32-make sub-src


그러면 30분 내외의 시간동안 정적빌드에 들어갑니다.

 


전부 완료되면 다음과 같이 결과가 보입니다.


이제 창을 닫고 Qt Creator를 실행합니다.

메뉴바에서 Tool - options를 클릭합니다.




왼쪽의 Build & Run탭에서 Qt Versions 탭으로 간 다음, Add를 클릭합니다.



C:\Qt\Qt5.4.0\5.4\qt-everywhere-opensource-src-5.4.0\qtbase\bin


위의 경로에 보면 qmake.exe가 있습니다.

이것을 선택하고 열기를 누릅니다.

그리고 Version name을 적절히 변경해줍니다. 저는 Qt5.4.0(qt-static)으로 지었습니다.

 

다시 Kits 탭으로 가서 Add를 클릭합니다.

그리고 Name을 Qt5 static으로 입력하고, Qt version을 방금 만든 Qt5.4.0(qt-static)으로 선택하고 OK를 클릭합니다.


 

이제 새로운 프로젝트를 만들어서 Release모드로 실행해보면 다음과 같이 제대로 빌드 후 실행이 되는 것을 확인할 수 있습니다.


 


빌드된 폴더에 들어가서 실행파일을 보니 용량이 14메가바이트로 굉장히 늘었음을 확인할 수 있습니다.

이제 이 파일을 Qt를 설치하지 않은 다른 컴퓨터에서 원활하게 실행할 수 있게됩니다.

여기까지가 Qt5.4버전에서의 정적빌드 방법입니다.


여기서 조금 더 개선된 방식을 사용하자면 용량을 줄이는 방법이 있습니다.


제가 첨부파일로 올린 upx391w.zip을 다운받아 압축을 풉니다.

저는 이곳에 upx.exe파일이 있습니다.

C:\Users\remoc_000\Desktop\upx391w\upx391w\upx.exe


그리고 방금 빌드한 파일은 다음 경로에 있습니다.


C:\Users\유저\Documents\Qt\build-qt_static_001-Qt5_static-Release\release\qt_static_001.exe


이제 명령 프롬프트를 실행합니다.

명령프롬프트는 시작 - 보조프로그램에 있습니다.


명령 프롬프트에 다음과 같이 입력합니다.

"C:\Users\유저\Desktop\upx391w\upx391w\upx.exe" -9 -o "C:\Users\유저\Documents\Qt\build-qt_static_001-Qt5_static-Release\release\result.exe" "C:\Users\유저\Documents\Qt\build-qt_static_001-Qt5_static-Release\release\qt_static_001.exe"

 


그러면 다음과 같이 압축이 진행됩니다.

사용하지 않는 코드는 버리는 과정입니다.


 그러면 이렇게 완료가 됩니다. 


그리고 result.exe파일이 생성되면서 용량은 5.4메가바이트로 1/3로 줄어듭니다.

이제 네이버 블로그에도 올릴 수 있게되었네요.


여기까지가 Qt5.4 정적빌드 방법입니다.

728x90
반응형