Qt를 사용하다 보면 charracter set이 맞지 않거나 Runtime Library(/MT나 /MD냐)가 맞지 않아서 나중에 링크 에러가 뜨는 경우가 있습니다.


qt-vs-01.jpg



이 경우 Qt를 다운받아서 재컴파일을 해 줘야 합니다. Qt는 기본적으로 자체 컴파일러는 내장하지는 않고 있으며 외부 컴파일러(MSCV, GCC 등)를 wrapping 만 하기 때문에 자신의 컴파일러를 이용해서 모든 것들을 자신의 마음대로 수정을 할 수가 있습니다.


우선 Cross-platform application framework 을 설치를 합니다.


qt-vs-04.jpg



이 경우 기본적으로 C:/QtSDK라는 폴더에 설치가 됩니다.


qt-vs-02.jpg



여기에서 lib 폴더가 있는데


C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib에 존재하는 lib 파일들

C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\bin 에 존재하는 dll 파일들


을 자신이 원하는 모듈들로 update해 줘야 합니다.



Qt 사이트( http://qt.nokia.com ) 에서 qt-win-opensource-4.7.4-vs2008.exe 파일을 다운받아 실행을 시켜 설치를 합니다.


qt-vs-03.jpg



기본 폴더는 C:\Qt\4.7.4 로 설치가 됩니다.


qt-vs-05.jpg



C:\Qt\4.7.4\mkspecs\win32-msvc2008 폴더로 가서(VS 버전에 맞는 폴더에 가면 됨) qmake.conf 파일을 자신에 맞도록 수정을 해 줍니다.


qt-vs-06.jpg



저는 다음과 같이 수정하도록 하겠습니다.


QMAKE_CC                = cl

QMAKE_LEX               = flex

QMAKE_LEXFLAGS          =

QMAKE_YACC              = byacc

QMAKE_YACCFLAGS         = -d

#QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t- // by gilgil

QMAKE_CFLAGS            = -nologo -Zm200

QMAKE_CFLAGS_WARN_ON    = -W3

QMAKE_CFLAGS_WARN_OFF   = -W0

#QMAKE_CFLAGS_RELEASE    = -O2 -MD // by gilgil

QMAKE_CFLAGS_RELEASE    = -O2 -MT

#QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi // by gilgil

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi

QMAKE_CFLAGS_DEBUG      = -Zi -MDd

QMAKE_CFLAGS_YACC       =

QMAKE_CFLAGS_LTCG       = -GL

QMAKE_CFLAGS_MP         = -MP


##### by gilgil #####

INCLUDEPATH +=   C:/Boost/include/boost-1_47 

INCLUDEPATH +=   D:/Project/VDream/VDream70 

LIBS        += -LC:/Boost/lib

LIBS        += -LD:/Project/VDream/VDream70/Bin

#####################



Visual Studio 2008 Command Prompt를 실행시킨 다음에 C:/Qt/4.74 폴더로 가서 configure.exe 명령어를 실행시킵니다. 이렇게 하면 VC 관련 project 파일들(*.sln, *.vcproj)이 생성이 됩니다. 여기에는 시간이 오래 걸립니다.


qt-vs-07.jpg



configure.exe 명령어가 완료가 되면


qt-vs-08.jpg



projects.pro 파일 및 projects.sln 파일이 생성되는 것을 확인할 수 있습니다.


qt-vs-09.jpg



projects.sln 파일을 열어 Option을 살펴 보면 qmake.conf에서 수정해 준 대로 옵션이 변경되어 있는 것을 확인할 수 있습니다.


qt-vs-10.jpg



다시 command로 와서 nmake.exe를 때려서 빌드를 합니다. 이 작업은 시간이 엄청 오래 걸립니다.


qt-vs-11.jpg



nmake로 build가 끝나면


qt-vs-12.jpg



lib 폴더에 있는 파일들이 최신 날짜로 update되어 있는 것을 확인할 수 있습니다.


qt-vs-13.jpg



확장자가 prl, dll, lib, ilk인  파일들을 다음과 같은 명령에 의해 복사를 해 줍니다.


copy C:\Qt\4.7.4\lib\*.prl C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib

copy C:\Qt\4.7.4\lib\*.dll C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib

copy C:\Qt\4.7.4\lib\*.lib C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib

copy C:\Qt\4.7.4\lib\*.ilk C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib


copy C:\Qt\4.7.4\lib\*.dll C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\bin



C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\mkspecs\win32-msvc2008\qmake.conf 파일도 위에서 얘기한 바와 같이 그대로 편집을 해 줍니다(위에서 작업한 qmake.conf 파일을 그냥 복사해도 무방).



QtCreator를 띄워서 임의의 project를 만들고 프로그램을 빌드를 해 봅니다.


qt-vs-14.jpg



qmake.conf에서 수정된 내용대로 컴파일이 되고 실행 파일이 제대로 생성이 되는지를 확인합니다.


qt-vs-15.jpg


실행 파일(*.exe)가 제대로 build가 되면 성공입니다. 이것으로 설정 끝!!!