전에 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 정적빌드 방법입니다.
'컴퓨터 공학 > Qt' 카테고리의 다른 글
[ Qt 프로그래밍 ] Win32 프레임없이 리사이즈하기 (0) | 2015.11.27 |
---|---|
[ Qt 프로그래밍 ] Qt 5.4 MinGW버전에서 비디오 플레이어 예제 실행하기 (0) | 2015.11.27 |
[ Qt 프로그래밍 ] Qt5.4에서 QFtp 사용하기 (0) | 2015.11.27 |
[ Qt 프로그래밍 ] 프레임없는 윈도우 창에서 리사이징 구현한 예제 (0) | 2015.11.27 |
[ Qt 프로그래밍 ] QML로 만든 게임 예제 (0) | 2015.11.27 |