한국어
Qt
 
환경: 윈도우7, Qt5.10
 
기본적으로 qt.io에서 배포된 Qt는 사전 빌드된 라이브러리들이 동적으로 링크된다. 즉, 응용프로그램이 실행 될때 사전 빌드된 DLL을 동적으로 참조한다.
문제는 이런 환경에서 개발된 응용프로그램은 배포시 문제가 발생하는데 Qt가 설치되어있지 않은 환경에서는 응용프로그램 자체만으로 실행이 불가능하기 때문에 필요한 dll 을 함께 패키지로 배포해야한다는 점이다. 
정적으로 빌드하게 되면 응용프로그램에 필요한 라이브러리들이 함께 링크되어 하나의 바이너리가 만들어 지므로 편리하게 배포할 수 있다. 또 응용프로그램 하나만 있는 경우 실제로 사용되는 Qt 코드만 링크되기 때문에 배포된 전체 크기가 동적 버전의 묶음보다 비교해서 더 작다는 장점이있다.
 
유의 해야할점은 Qt가 정적으로 링크되어 배포될 때 라이센스 문제가 있다는 것이다. 오프소스 프로젝트가 아니라면 반드시 라이센스 문제를 확인해야한다.
 
이렇게 응용프로그램을 정적 실행환경으로 만드려면 정적 버전의 Qt가 필요하다.
파워쉘 스크립트를 이용한 방법이 있고 파워쉘 버전 3.0이상에서 가능하다.
windows7은 보통 파워쉘 버전 2.0대여서 업데이트를 해줘야하지만 필자의 경우 (이상하게)업데이트 설치파일이 실행이 안되서 그냥 아래의 방법으로 진행하였다.

 

(윈도우7 이상은 파워쉘 버전이 3.0이상이므로 스크립트를 사용하면 편리할듯하다.)
 
Qt5.10다운로드 및 설치
온라인 인스톨러 다운로드 후 5.10(소스코드포함) 및 MinGW5.3.0을 체크하여 설치한다. (기본 C:\ 에 설치한다.)
install_qt.png

 

설치후에

C:\Qt 밑에 "static" 폴더 생성
C:\Qt\static 밑에 "5.10.0" 폴더 생성

 

C:\Qt\5.10.0 의 "src" 폴더를 "static" 에 복사
C:\Qt\Static\Src\qtbase\mkspecs\win32-g++ 폴더에 있는 qmake.conf 파일을 에디터로 열고 마지막에 아래 내용을 추가해준다.
QMAKE_LFLAGS += -static -static-libgcc
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
DEFINES += QT_STATIC_BUILD
 
CMD를 실행 하고 환경 변수 등록
set Path=C:\Qt\Tools\mingw530_32\bin;%PATH%
 
CMD에서 "C:\Qt\Static\Src"로 이동한 후 Configure
configure -static -release -platform win32-g++ -prefix C:\Qt\Static\5.10.0 -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests


아래 명령으로 빌드 및 설치를 실행한다. (두번째 명령은 경우에 따라 몇시간이 걸린다.)

mingw32-make -k -j4
mingw32-make -k install


필자의 경우 위 명령 중 python 의존성 에러가 발생하였다

"Project ERROR: Building QtQml requires Python."

python_error.png

 

혹시 위와 같은 에러가 발생한 경우 python도 설치한다.

설치 시 "Add Python 3.6 to PATH" 체크

파이썬 설치후에는 cmd를 새로 열고 위에서 했던 환경변수 설정부터 다시 해주자.

install_python.png

 

모든 컴파일 및 설치가 완료된 후

C:\Qt\Static\5.10.0\mkspecs\win32-g++ 폴더의 qmake.conf 를 에디터로 열고 마지막에 아래 내용을 추가한다.

CONFIG += static

 

QtCreator를 열고 Tools - Options - Build & Run - Qt Vesions의 add 를 클릭하여

C:\Qt\Static\5.10.0\bin\qmake.exe 를 추가 시켜준다.

Kits 탭으로 이동하여 add를 클릭하고 방금 추가 시켜준 qmake를 선택하고 컴파일러는 C:\Qt\Tools에 설치된 것으로 선택한다.

kits.png

 

이제 새 프로젝트를 생성하거나 기존 프로젝트를 열어 방금 추가해준 Kit으로 선택하여 qmake - Build를 하면 꾀 용량이 큰 exe실행 파일이 만들어진다.

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 85343
19 클라우드용 Qt file makersweb 2024.01.16 436
18 QMake 프로젝트를 CMake 프로젝트로 변환 with qmake2cmake makersweb 2022.09.17 938
17 qbs 사용 방법(Helloworld) file makersweb 2019.10.23 3089
16 Qt Creator에서 Qt의존성 라이브러리 자동복사하기 file makersweb 2019.10.19 2132
15 Windows에서 Qt 설치 따라하기 file makersweb 2019.10.14 30791
14 Qbs 프로젝트를 정의하기 위해 사용되는 몇가지 중요한 아이템들 file makersweb 2019.10.13 286
13 Qbs에 대한 소개와 설치하는 방법 makersweb 2019.10.09 1358
12 [Qt News] Qt6 Git 개발 초기 단계 시작하기 j2doll 2019.08.02 2315
11 QML, 이미지, 폰트등을 바이너리 리소스로 만들기 makersweb 2019.06.24 3455
10 Qt Creator에서 임베디드 장치로 deploy설정(Custom Process Step) file makersweb 2019.06.15 2177
9 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 6225
8 리눅스에서 Qt4.8기반 어플리케이션의 한글입력 file makersweb 2018.11.29 2408
7 Qt Installer Framework - 패키징, 설치프로그램 제작 file makersweb 2018.10.14 11601
6 Qml 어플리케이션 정적 빌드 file makersweb 2018.07.27 2105
5 Qt Bluetooth 관련 기능 확인 사항 makersweb 2018.07.10 749
4 Windows에서 라즈베리파이3 Qt 어플리케이션 개발 및 원격 실행 file makersweb 2018.02.23 6031
» Windows환경에서 mingw로 Qt 5.10 정적(static)빌드 file makersweb 2018.02.01 5650
2 Qt 3D Studio 시작하기 file makersweb 2018.01.11 3803
1 Ubuntu Linux에서 Qt Creator 설치 file makersweb 2016.03.06 10647