์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- ํ์ด๋ค์ผ ๋งฅ์ฃผ ๋ฐ๋ฌผ๊ด
- this call
- C++
- ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
- ๋ง์๊ทธ๋ ์ด
- ํฌ๋ฅด์ ๋ฐ๋ฌผ๊ด
- ์ฌํ
- ์คํ๋ฒ ์ค
- ๋คํ์ฐ ์์ฉ์
- ๊ตญ๋ฆฝ ๋ ์ผ ๋ฐ๋ฌผ๊ด
- ์ ๋ฝ
- ์๋ฉ๋ฆฌ์นด๋ ธ
- ๋ํค๋ณด๋ฆฌ
- ๊ฐ์ฌ์ด ๊ณตํญ
- ๋ฃจ๋ธ๋ฅด ๋ฐ๋ฌผ๊ด
- Windows
- ์์คํ ๋ฅด๋ด ๊ตญ๋ฆฝ ๋ฏธ์ ๊ด
- Qt
- ์ฌ๋ฅํฝ ํ๋ฅดํฌ
- ๋น๋์คํธ
- ๋ฎํจ
- ํ๋ก์ฐ๋ฉํฐ
- ๋งค์ค์ปคํผ
- ๋ฒ ๋ก ๋นต
- ์ด์ฝ ๋ฐ๋๋ ์ฝ์ฝ์
- ํ๋ฆฌ
- ์ค์ฌ์นด
- ๋ฆฌ๋ฒ ํฌ๋ฃจ์ฆ
- ๋ ์ผ
- ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ
- Today
- Total
๊ตฌ๋ฆ
Qt ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๋ ๋ณธ๋ฌธ
๋ณธ ๊ฒ์๊ธ์ http://wohlsoft.ru/pgewiki/Building_static_Qt_5 ์ ๊ธ์ ๋ฒ์ญ๋ฐ ์ฒจ์ญํ ๊ธ์์ ์๋ฆฌ๋ฉฐ
GNU Free Documentation License ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
2017.07.09
Qt 5.9.1 ๋ฒ์ ๊ธฐ์ค, ๋ช๋ช ์์ ์ฌํญ์ ์ถ๊ฐํ์ต๋๋ค.
2018.03.23
Qt 5.10.1 ๋ฒ์ ๊ธฐ์ค, ๋ช๋ช ์์ ์ฌํญ์ ์ถ๊ฐ ํ์ต๋๋ค.
Qt ๋ก ๋ง๋ ํ๋ก๊ทธ๋จ์ ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ ๋งํฌ๋ก ์ฌ์ฉ ํฉ๋๋ค. ์ ์ ๋น๋๋ฅผ ํ๊ฒ ๋๋ฉด *.DLL ์ด๋ *.SO, *DIYLIB ์ ๊ฐ์ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด ๋ชจ๋ ์ฝ๋๊ฐ ์คํํ์ผ ์์ ๋ค์ด๊ฐ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ ๋น๋ํ Qt ํ๋ก๊ทธ๋จ์ Qt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ์ด๋ค ์ปดํจํฐ์์๋ ๋ฐ๋ก ์คํ ํ ์ ์์ต๋๋ค.
์ ์ ๋น๋ํ ๋ฒ์ ์ Qt ์์ฉํ๋ก๊ทธ๋จ์ ์คํ์์ค๋ก ๊ณต๊ฐํ ์๋ฌด๊ฐ ์๊น๋๋ค! (GPLv3 licenes).
ํน์ ์์ฉ ๋ผ์ด์ผ์ค๋ฅผ ๊ตฌ์ ํ์ฌ์ผ ํฉ๋๋ค.
MaintenanceTool
๊ธฐ์กด Qt ์ด์ฉ์ ๋ผ๋ฉด Add or remove components ๋ฅผ ํด๋ฆญํ์ฌ ์ปดํฌ๋ํธ ๊ด๋ฆฌ๋ก ๋ค์ด๊ฐ๋๋ก ํฉ๋๋ค.
Beta ๋ฒ์ ๋ ์๋๋ฐ, ์ ๋ ์ต์ ๋ฆด๋ฆฌ์ฆ์ธ Qt 5.10.1 ๋ฒ์ ์ ์ค์นํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ์ฒดํฌ๋ฐ์ค ์ค ํ์ํ ํญ๋ชฉ๋ค(Sources ๋ฅผ ์ฒดํฌํด์ผ ํด๋น ๋ฒ์ ์ ์์ค์ฝ๋๊ฐ ์ธ์คํจ ๋ฉ๋๋ค.) ๋ง ์ฒดํฌํ Next ๋ฅผ ๋๋ฌ ์ค๋๋ค.
(์ ๋ Microsoft VisualStudio ์์๋ ์์ ํ ์ ์๋๋ก, ์ ๋๋ฒ์ ์๋์ฐ ํ๋ก๊ทธ๋จ ์ ์์ ์ํด์ MSVC, UWP ๋ฅผ ์ฒดํฌํด ๋์์ต๋๋ค.)
Windows
๋น๋ ๋ฐ ์ค์น
์์ถ ํด์ ํ ๋๋ ํ ๋ฆฌC:\Qt\5.10.1\Src\qtbase\mkspecs\win32-g++
๋ก ์ด๋ํ์ฌ qmake.conf ํ์ผ์ ์ฝ๋๋ค. (notepad ๋ฑ)
์๋ ๋ ์ค์ ์ถ๊ฐ ํฉ๋๋ค.
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
QMAKE_LFLAGS = -static -static-libgcc
๋ก ์์ ํ ์ ์ฅํด ์ค๋๋ค.
Qt ํ๋กฌํํธ๋ก ์ฝ์์ฐฝ์ ์ผ์ configure ๊ฐ ์๋ qtbase ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
[cd ../Src/qtbase]
configure -static -platform win32-g++ -prefix "C:\Qt\Qt5_static" -debug-and-release -opensource -confirm-license -nomake examples -nomake tests -nomake tools -opengl desktop -no-angle
์ ๋ ฅํ์ฌ configure ์ ์์ํฉ๋๋ค. (๋ช๋ถ์ ๋ ๊ฑธ๋ฆด์ ์์ต๋๋ค.)
"C:\Qt\Qt5_static" ์ static library ๋ฅผ ์ค์นํ ์์น ์ ๋๋ค. ๋ณธ์ธ์ด ํธํ ๊ณณ์ผ๋ก ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
์์ ์๋ฃ ํ
mingw32-make -k -j4
์ ์ ๋ ฅํ์ฌ ๋น๋๋ฅผ ์์ํฉ๋๋ค. (CPU ์ฑ๋ฅ์ ๋ฐ๋ผ 1์๊ฐ ํน์ ๊ทธ์ด์์ ์๊ฐ์ด ๊ฑธ๋ฆด์ ์์ต๋๋ค. ssd ๋ฅผ ์ฐ๋ฉด ํ์คํ ๋น๋ ์๋๊ฐ ๋น ๋ฆ ๋๋ค. ๋น๋ ํด์ผ ํ ์์ค๊ฐ ๋ง๋ค๋ณด๋ I/O ์๊ฐ์ด ๊ฝค ์ค์ํ๊ฒ ์ ์ฉ๋๋๊ฒ ๊ฐ์ต๋๋ค.)
-k ๋ ์์ ๋์์ด ๋ง๋ค์ด ์ง์ง ์์๋ ๊ณ์ ๋น๋๋ฅผ ํ๋ผ๋ ์ต์ ์ด๊ณ , -j๋ worker ์ ๊ฐ์๋ฅผ ์ค์ ํฉ๋๋ค. cpu ์ฝ์ด ๊ฐ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋ ธ๋ cpu ์์ด ๋น๋ํ๊ฒ ๋ฉ๋๋ค.
mingw32-make -k install
์ ์ ๋ ฅํ์ฌ ์ค์นํด์ฃผ์๋ฉด ๋ชจ๋ ์์ ์ด ๋ง๋ฌด๋ฆฌ ๋ฉ๋๋ค.
์๋ณธ ๋ฌธ์์๋ ๋ฐฐ์นํ์ผ์ ์ด์ฉํ์ฌ ์๋์ผ๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์๋ดํ๊ณ ์์ต๋๋ค.
๋น๋ ์คํฌ๋ฆฝํธ ์์ฑ
- QtSrcDir : ์์ค์ฝ๋๋ฅผ ์์ถํด์ ํ ์ ๋๊ฒฝ๋ก ์ ๋๋ค. (configuration.bat ํ์ผ ์ด ์์ด์ผ ํฉ๋๋ค.)
- QtStaticDir : ์ ์ ๋น๋๋ Qt ๊ฐ ์ค์น๋ ๊ณณ ์ ๋๋ค. (bin, lib, include, plugins ๋ฑ์ ๋๋ ํ ๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค.)
- MingwDir : MinGw ์ปดํ์ผ๋ฌ์ ์ ๋๊ฒฝ๋ก ์ ๋๋ค. (bin, lib, include ๋๋ ํ ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.)
@echo offrem ====================CONFIGURE BEFORE RUN SCRIPT!!======================set QtSrcDir=%CD%\qt-everywhere-opensource-src-5.7.0set QtStaticDir=C:\Qt\5.7_Staticset MingwDir=C:\Qt\Tools\mingw530_32set LANG = enrem =======================================================================PATH = %MingwDir%\bin;%MingwDir%\opt\bin;%SystemRoot%\system32;%SystemRoot%set FILE_TO_PATCH=%QtSrcDir%\qtbase\mkspecs\win32-g++\qmake.confecho %FILE_TO_PATCH%if exist %FILE_TO_PATCH%.patched goto skipPatchtype %FILE_TO_PATCH%>%FILE_TO_PATCH%.patchedecho.>>%FILE_TO_PATCH%echo QMAKE_LFLAGS += -static -static-libgcc>>%FILE_TO_PATCH%echo QMAKE_CFLAGS_RELEASE -= -O2>>%FILE_TO_PATCH%echo QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer>>%FILE_TO_PATCH%echo DEFINES += QT_STATIC_BUILD>>%FILE_TO_PATCH%:skipPatchset QT_INSTALL_PREFIX = %QtStaticDir%set OldDir=%CD%cd %QtSrcDir%cmd /C "configure.bat -static -release -platform win32-g++ -prefix %QtStaticDir% -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests"if ERRORLEVEL 1 goto :errormingw32-make -r -k -j4if ERRORLEVEL 1 goto :errormingw32-make -k installif ERRORLEVEL 1 goto :errorset FILE_TO_PATCH=%QtStaticDir%\mkspecs\win32-g++\qmake.confecho.>>%FILE_TO_PATCH%echo CONFIG += static>>%FILE_TO_PATCH%echo ============BUILT!============goto exitX:errorecho ============ERROR!============:exitXpausecd %OldDir%
๋น๋ ํ ์ค์น
"build_static_qt.bat" ์ ์คํํ๊ณ 1~3์๊ฐ ๊ฐ๋ ๋ชจ๋ ์์ ์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. (cpu ์ฑ๋ฅ์๋ฐ๋ผ ์ฐจ์ด๊ฐ ๋ ์ ์์ต๋๋ค.)
Linux/macOS
์์กด์ฑ ํญ๋ชฉ ๋ค์ด
sudo apt-get install gcc g++ make wgetsudo apt-get install build-essentialsudo apt-get install "^libxcb.*" libx11-dev libx11-xcb-dev libxcursor-dev libxrender-dev libxrandr-dev \libxext-dev libxi-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev libxinerama-dev libxkbcommon-dev \libfontconfig1-dev libasound2-dev libpulse-dev libdbus-1-dev libts-dev udev mtdev-tools webp \libudev-dev libglm-dev libwayland-dev libegl1-mesa-dev mesa-common-dev libgl1-mesa-dev \libglu1-mesa-dev libgles2-mesa libgles2-mesa-dev libmirclient-dev libproxy-dev libgtk2.0-dev
brew install coreutils
brew install binutils
brew install gnu-sed
port install bunutils
port install coreutils
port install gsed
Configure
./configure -static
์ ๋ ฅ ํ ์์ฉ๋ฒ์ ์ผ ๊ฒฝ์ฐ c, ์คํ์์ค ๋ฒ์ ์ผ ๊ฒฝ์ฐ o ๋ฅผ ๋๋ฌ ์ค๋๋ค.
์คํ์์ค ๋ฒ์ ์ ๊ฒฝ์ฐ, ๋ผ์ด์ผ์ค์ ๋์ ํ๋ฉด yes ๋ฅผ ์ ๋ ฅํด configure ์ ์์ํฉ๋๋ค. (๋ช๋ถ์ ๋ ๊ฑธ๋ฆด์ ์์ต๋๋ค.)
์๋ณธ๋ฌธ์์๋ ์ฌ๋ฌ ์ต์ ์ ๋ถ์ฌ configure ์ ํฉ๋๋ค.
Linux Mint / Debian
./configure -static -release -nomake examples -nomake tools -prefix ~/Qt/5.7.0_static -system-xcb \
-qt-libpng -no-libjpeg -qt-zlib -qt-pcre -gtk -opensource -confirm-license -opengl \
-qt-freetype -pulseaudio -alsa
macOS
./configure -static -release -nomake examples -nomake tools -prefix ~/Qt/5.7.0_static_osx \
-qt-libpng -no-libjpeg -qt-zlib -qt-pcre -gtkstyle -opensource -confirm-license -gtkstyle -opengl -qt-freetype -no-ssse3
๋น๋ ๋ฐ ์ค์น
make
1~3์๊ฐ ๊ฐ๋ ๋ชจ๋ ์์ ์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. (cpu ์ฑ๋ฅ์๋ฐ๋ผ ์ฐจ์ด๊ฐ ๋ ์ ์์ต๋๋ค.)
make -r -j 4
-r -j x ์ธ์๋ก ๋น๋์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ ์ ์์ต๋๋ค. (x : ๋์์ ์์ ํ๋ ์)
make install
๋ง์ง๋ง์ผ๋ก ์ค์น ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌํด์ค๋๋ค.
๊ณตํต
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋น๋๋ ๋๋ ํ ๋ฆฌ ๋ก ๊ฐ์ qmake ํ์ผ์ ์ ํํฉ๋๋ค.
[/5.7/Src/qtbase/bin/qmake]
์ด์ ํ๋ก์ ํธ ์์ฑ ์ ์ ์ ๋น๋๋ฅผ ์ํ ๋๊ตฌ๊ฐ ์๊ฒผ์ต๋๋ค. ๊ธฐ์กด ํ๋ก์ ํธ ์ญ์ Qt Creator -> Project -> Add Kit ์์ ์ ์ ๋น๋ ๋๊ตฌ๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
๋์ ๋งํฌ๋ก ๋ง๋ ์คํํ์ผ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ด ์์ผ๋ฉด ์คํ๋์ง ์์ง๋ง ์ ์ ๋งํฌ๋ก ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ์ผ ์์ ๋ชจ๋ ๋ฃ๊ฒ ๋๋ฉด ์คํํ์ผ ํ๋๋ก Qt ํ๋ก๊ทธ๋จ์ ์คํ ํ ์ ์์ต๋๋ค.
๋ค๋ง, ์ ์ ์ผํฌ๋ก ๋น๋ํ ํ๋ก๊ทธ๋จ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Qtcore, QtGui ๋ฑ) ์ด ๋ชจ๋ ํฌํจ๋์ด์์ด์ ์คํํ์ผ ์์ฒด๋ง์ผ๋ก ์ฉ๋์ ๋ง์ด ์ฐจ์งํฉ๋๋ค.