이 과정은 상당히 지루하고 시간이 오래 걸리지 만 앞으로는 Qt를 컴파일하려고하는 다른 사람들을 위해 각 단계를 자세히 설명 할 것입니다.
첫 번째 단계는 모든 필수 구성 요소를 설치하는 것입니다.
- ActivePerl이며 구성 과정에서 사용됩니다. Perl을 설치 한 후 환경 변수를 수정하기 때문에 다시 시작해야합니다.
- Windows SDK 7.1 (이전의 플랫폼 SDK). 설치할 구성 요소를 선택할 때 x64 라이브러리를 포함시켜야합니다.
는 Qt Downloads page에서 Qt는 소스 아카이브를 다운로드합니다.
기억 파일의 내용을 기억하기 쉬운 위치 (예 : C:\
)로 추출하십시오. 나중에이 위치를 사용하여 일부 환경 변수를 설정하기 때문에이 위치를 기억해야합니다.
이제 Windows SDK 7.1 명령 프롬프트를 엽니 다. (아래 예제는 C:\
에 압축 가정)
setenv /release /x86
설정 다음과 같은 환경 변수를 (우리는 32 비트 응용 프로그램으로 몇 가지 도구를 구축 할 필요) 32 비트 릴리스 모드로 환경을 설정하여 시작합니다 :
set QTDIR=C:\qt-everywhere-opensource-src-4.8.0
set PATH=%PATH%;%QTDIR%\bin
지금 cd %QTDIR%
를 실행하고 구성 옵션을 지정 - 예를 아래에 포함되어
configure -release -opensource -qt-zlib -qt-libpng -qt-libmng -qt-libtiff
-qt-libjpeg -qt-style-windowsxp -qt-style-windowsvista -platform
win32-msvc2010
구성 프로세스가 완료 cd
src
디렉토리에 실행되면 :
이 qmake
nmake
상당한 시간이 걸릴 수 있습니다이 과정은, 이제 휴식을 취하고 여기에 몇 가지 질문에 대답 할 수있는 좋은 시간이 될 것입니다 on Stack Overflow :)
이제 도구가 빌드되었고 Qt를 64 비트 라이브러리로 컴파일해야합니다. 다음 명령을 입력하십시오.
setenv /x64
5 단계의 환경 변수를 다시 설정해야합니다. 이제 해당 명령을 입력하십시오.그것은 우리가 qmake.exe
프로그램의 컴파일을 건너 뛸 것을 나타냅니다 -
configure -release -opensource -qt-zlib -qt-libpng -qt-libmng -qt-libtiff
-qt-libjpeg -qt-style-windowsxp -qt-style-windowsvista -platform
win32-msvc2010 -no-qmake
-no-qmake
옵션은 매우 중요 : 다음
실행 cd %QTDIR%
및 하나 개의 추가 옵션을 지정 이 확인되는 configure
명령을 다시 실행 왜냐하면 우리는 32 비트 버전을 유지하기를 원하기 때문입니다.
이제 몇 가지 종속성 문제로 인해 상황이 실제로 복잡해집니다. Qt가 코어 라이브러리를 빌드하는 데 필요한 도구 (예 : moc
)와 다른 구성 요소 중 일부는 src.pro
파일에 종속성으로 나열됩니다. 즉, 컴파일러가 64 비트 응용 프로그램으로 빌드 한 다음 실행하려고 시도합니다. 물론 32 비트 시스템에서는 실패합니다. 그래서 우리가해야 할 일은 src.pro
을 편집하고 그 의존성을 스스로 제거하는 것입니다. 라인 85 근처에서 아래로 스크롤로 시작하는 행을 찾습니다
!wince*:!ordered:!symbian-abld:!symbian-sbsv2 {
섹션의 각 후속 라인은 서브 타겟과의 종속성을 보여줍니다. 이제 수행하려는 작업은 src_tools_
으로 시작하는 모든 종속성을 제거하는 것입니다. 예를 들어 :
이 src_gui.depends = src_corelib
이 일을 더 나은 방법이있을 수 있습니다,하지만 난 아직 파악되지 않은 :
이제 우리 cd
을로 :
src_gui.depends = src_corelib src_tools_uic
이된다 src
디렉토리를 다시 한 번 실행하여 다음 명령을 실행하십시오.
nmake sub-winmain sub-corelib sub-xml sub-network sub-sql sub-testlib
sub-gui sub-qt3support sub-activeqt sub-opengl sub-xmlpatterns sub-phonon
sub-multimedia sub-svg sub-script sub-declarative sub-webkit
sub-scripttools sub-plugins sub-imports
이것은 Qt 라이브러리 만 빌드하고 도구 종속성을 건너 뜁니다. 이것 역시 상당한 시간이 걸릴 수 있습니다.
이제는 64 비트 Qt 응용 프로그램에서 연결할 수있는 lib
폴더에 64 비트 라이브러리가 있어야합니다.
편집 :는 QtWebKit4.dll
라이브러리 (해결되지 않은 문자에 대해 뭔가를) 연결할 때 난 아직도 몇 가지 문제로 실행 이후에도이 것만으로는 충분하지 않았다 것으로 나타났다. someone else has already found the solution이 표시되고 QMAKE_HOST.arch
을 QMAKE_TARGET.arch
, WebCore.pro
으로 변경해야합니다.
또한 위 옵션은 OpenSSL을 지원하지 않는 QNetwork4.dll을 구축합니다 (QWebView에서도 HTTPS를 통해 사이트에 액세스 할 수 없음). 고맙게도 고칠 수는 없습니다. 다운로드 및 Win64를위한 OpenSSL을 구축하고 단계 # 9 명령에 아래 옵션을 추가 :
-openssl -I C:\OpenSSL\inc32 -L C:\OpenSSL\out32dll
(당신이 C:\OpenSSL
이외에서 OpenSSL 곳을 설치 한 경우이 경로를 변경해야합니다.)
는 는 는 또한 편집
:, 나는 여기에 컴파일 된 라이브러리를 업로드 한 자신을이 일의 어려움을 저장 : 나는 조지 에디슨의 대답에 코멘트에서 언급 한 바와 같이
http://www.box.com/s/9710cbb278ef4890a7b5
와 아직 앱 개발이 만병 통치약처럼 사람들이 여전히 아름답고 간단하고 쉬운 * 있다고, Qt는 이야기 *. 나는 이것에 대한 증거를 아직 보지 못했다. 내가 작업을 시도했을 때, 필자가 결론을 내린 것은 단지 가치가 없다는 것입니다. 특히 일단 당신이 끝나면 완전히 네이티브 어플리케이션이 없다는 것을 고려하면됩니다. –
@CodyGray : 완전히 동의하지 않습니다. 왜 그렇게 많은 어려움을 겪으시겠습니까? –
@GeorgeEdison : 컴파일 된 64 비트 바이너리로 Qt 응용 프로그램을 컴파일하고 있지만 응용 프로그램이 충돌합니다. 이 사실은 내가 QTableView를 사용했다는 사실과 관련이 있다고 생각합니다. QTableView는 MS Visual C++ 컴파일러의 버그로 인해 충돌합니다. https://bugreports.qt-project.org/browse/QTBUG-19175 및 https : //bugreports.qt-project.org//browse/QTBUG-11445. MSVC SP 1을 사용하여 바이너리를 컴파일 했습니까? 저는 지금 64 비트 컴파일을하고 있습니다 만, 업로드 된 컴파일 된 라이브러리가 다른 사람들에게 유용 할 것이므로 버그가 없다는 것이 중요하기 때문에 이것을 묻습니다. – yyzz