Platform/QT Static(정적) 컴파일 방법
  • 728x90
    반응형

     

    QT 정적 컴파일


     

    정적 컴파일 이란 ?


     

    기본적으로 QT는 사전 빌드된 라이브러리들이 동적으로 링크된다.

     

    즉, 응용프로그램이 실행 될때 사전 빌드된 DLL을 동적으로 참조한다.
     
    동적으로 참조할 경우 QT가 설치되어있지 않은 환경에서는 응용프로그램 자체만으로 실행이 불가능하기 때문에 dll을 함께 패키지로 배포해야한다는 점이다.

     

    정적으로 빌드하게 되면 응용프로그램에 필요한 라이브러리들이 함께 링크되어 하나의 바이너리가 만들어 지므로 편리하게 배포할 수 있다. 

     

    정적 컴파일


     

    QT 설치시에 Sources 포함 및 MinGW 5.3.0을 체크하여 설치 하여야 한다.

     

     

     

    1. 설치 후에  C:\Qt\Static  폴더 생성  C\Qt\Static\5.8  폴더 생성

     

    2.  C:\Qt\5.8\Src  폴더를  Static  에 복사

     

    3.  C:\Qt\Static\Src\qtbase\mkspecs\win32-g++  폴더에 있는  qmake.conf  파일을 에디터로 열고 마지막에 아래 내용을 추가해준다.

     

     

    [qmke.conf 파일]


    QMAKE_LFLAGS += -static -static-libgcc
    QMAKE_CFLAGS_RELEASE -= -O2
    QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
    DEFINES += QT_STATIC_BUILD

     

    4. CMD 에서 환경 변수 등록

     

    set Path=C:\Qt\Tools\mingw530_32\bin;%PATH%

     

    5. QT Console 에서  C:\Qt\Static\Src  로 이동한 후 Configure 를 아래 옵션으로 실행한다.

     

    configure -static -release -platform win32-g++ -prefix C:\Qt\Static\5.8 -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

     

     

    6. 아래 명령으로 빌드 및 설치를 실행

     

     

    mingw32-make -k -j4

     

    mingw32-make install

     

    7. 설치 완료 후  qmake.conf  를 에디터로 열고 아래 내용을 추가한다.

     

    CONFIG += static

     

    8. QtCreator를 열고 Tools - Options - Bulid & Run - Qt Versions의 add 를 클릭하여 

     

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

     

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

     

     

    10. 새프로젝트를 생성하거나 기존 프로젝트를 열어 방금 추가해준 Kit를 선택하여 qmke - Build를 하면 

     

    용량이 큰 exe 실행 파일이 만들어진다.

     

    728x90
    반응형

    'Platform > QT' 카테고리의 다른 글

    [QT] 파일에서 읽은 한글 깨짐 현상  (0) 2024.01.31
    QTCreate 단축키 모음  (1) 2021.07.09
    QT5 Installer Framework Tutorial  (0) 2018.01.24
    Qt5 QtXlsx 사용법  (0) 2018.01.17
    QT QCalendarWidget StyleSheet 설정  (0) 2017.10.19
상단으로