Qt5をダウンロードしてVisual Studio 2012と統合するにはどうすればよいですか?遭遇する問題にはどのようなものがあり、どのようにそれらの問題を解決しますか?
PDATE re。Visual Studio 201
Visual Studio 2013でも同様に成功が報告されており、VS 2013でもメモが維持されています。
また、質問の焦点は、Visual StudioでのQtbuildingQtにのみ強いことに注意してください。 Visual Studio IDEとの統合に関する注意事項もあります
上記の優れたwikiと this qt-project link に基づいて、Windows 7上でQt 5.0.2をVisual Studio 2012と統合することに成功しました。私は少し異なる方法でいくつかの手順を行ったので、ここに投稿することが有効だと思いました:
以下のシーケンスは、正確に指定された順序で実行する必要があります。
0-ビルドエラーを回避するために、Avastをアンインストールします(インストールされている場合)。アバストのバグにより、非アクティブ化は機能しません。
1-Gitのインストール(> = 1.6.x);
2-インストールPython(> = 2.6.x)。[python.org];
3-Perlをインストールします(> = 5.14)。 [activestate.com];
4-Rubyをインストールします。 [rubyinstaller.org];
5-Windows 7コマンドプロンプトを開きます(VS2012開発者コマンドプロンプトを今すぐ使用しないでください)。
6-qt5に必要な任意のディレクトリを選択します。選択したパスにはスペースは許可されていません。パス「C:\ qt5」を使用することにしました。
7-Windows 7のコマンドプロンプトに戻る(私の場合、「C:\ qt5>」と入力):
git clone git://gitorious.org/qt/qt5.git qt5
8-安定版をチェックアウトします。
cd qt5
git checkout stable
9-このバージョンが既に安定していることを確認するメッセージをおそらく受け取るでしょう。コマンドプロンプトを閉じます。
10-Visual Studioの開発者コンソールを開きます(すべてのプログラム> Visual Studio 2012> Visual Studioツール> VS2012の開発者コマンドプロンプト)を選択し、現在のディレクトリを選択したディレクトリに変更します( "C:\ qt5"私の例では);
11-Webkitを無視してQtサブモジュールをダウンロードします(ビルドエラーの一般的なソース...):
Perl .\init-repository --no-webkit
12-次の巨大なコマンドを入力して、ビルドを適切に構成します。
configure -developer-build -opensource -nomake examples -nomake tests -nomake demos -debug-and-release -c++11 -mp -nomake webkit -confirm-license
13-次に、モジュールqlalrが[〜#〜] not [〜#〜]ビルドされます。これを行うには、Windowsエクスプローラーを開き、選択したQtディレクトリ(この例では "C:\ qt5")に移動し、フォルダーqlalrが存在するかどうかを確認します。その場合、それを削除します。
14-ビルドの時間...可能性のあるビルドエラーは、主要なQt機能に影響を与えないセカンダリモジュール(webkitなど)から発生します(webkit自体は、ビルドしないように構成を設定しているため問題ありません)それ)。その後、それらを無視し、ビルドを独立したモジュールで実行し続けることができます。
nmake /I /K
15-統合を完了するには、上記のコミュニティwikiのステップ3に従ってください(「ステップ3:Qt5とVisual Studio 2012の統合」)。
http://qt-project.org/downloads で利用可能なVisual Studio 2012用のQt 5.2のビルド済みバージョンがあることに言及したいだけです。したがって、ソースからQt 5をビルドすることに特別な関心がない場合は、ビルド前のバイナリも使用できます。
Tver-Soft Webサイト には、さまざまなコンパイラバージョン用のプリコンパイル済み(x64)バイナリもあります。
Visual Studio 2012を使用して、Windows 8 x64上でQT 5.1(git)をQWebKitでコンパイルすることができ、問題のあるユーザーと経験を共有できると考えました。
上記の投稿に記載されている手順1と2を実行しました。ステップ3を実行しようとしましたが、SmartGitはQt5でコンパイルできない余分なプロジェクトをたくさん引き出しました。私は別のフォークからクローンを作成することでほとんどの問題を解決できました(例 https://qt.gitorious.org/qt/qt3d/ )が、これはすべての余分なことを行うには面倒になりすぎましたモジュールなので、私はそれらのどれもコンパイルしないことに決めました。
VS2012コンパイラを使用したQt5の32ビットビルドでのICUサポートにより、Qt5ビルドエラーが発生します。したがって、Webkitもビルドできません ICU問題。
http://download.icu-project.org/files/icu4c/51.2/icu4c-51_2-src.Zip でソースコードをダウンロードし、行を追加します
#define U_CHARSET_IS_UTF8 1
ファイル%ICU%\ source\common\unicode\platform.hへ。ここで、%ICU%はICUソースコードへのパスです。
Visual Studio 2012で%ICU%\ source\allinone\allinone.slnファイルを開いてコンパイルします。パスに%ICU%\ binを追加します
set PATH=%ICU%\bin64;%PATH%
次に、QTルートディレクトリで次のコマンドを実行しました
configure -platform win32-msvc2012 -opengl desktop -opensource -debug-and-release -I %ICU%\include -L %ICU%\icu\lib64 -mp -qt-freetype -icu
この時点で、nmakeがMakefileの予期しない行(Makefile.JavaScriptCore.DerivedSourcesやMakefile.WebCore.DerivedSourcesなどの拡張子がDerivedSourcesを持っていた)について文句を言うようになったため、誰も私がやろうとしていないと疑い始めました。 ))
(set PATH=<stuff>;%PATH%) && ....
nmakeを実行する前にPATHを手動で設定し、&&などの文字を削除します。
(set PATH=<stuff>;%PATH%) && Perl -ne "print $1" css\CSSPropertyNames.in ...
になる
Perl -ne "print $1" css\CSSPropertyNames.in ...
最後に、これらのファイルの1つは、flexではなくwin_flex.exe(またはwin-flex.exe)を呼び出そうとします。 flex.exeに変更し、すべてが最終的にコンパイルされました(ファイルが再生成されたと思うので、2回変更する必要がありました)。
QWebKitを使用し、このビルドにリンクされているプログラムの短い経験により、すべてがうまくいくと信じられます。
- 更新 -
完了するだけです。 (set PATH = ...;%PATH: ^)%)はWindowsシェルスクリプトで何を意味し、Qt5 nmakeビルドのコンテキストでこの行の失敗を克服するにはどうすればよいですか? )==(これは http://qt-project.org/forums/viewthread/20605 を指します)Makefileの問題のほとんどは、nmakeではなくjsomを使用することで解決できるはずです(まだ疑問に思っていますが) win-flex.exe)
1-configure.exeを生成できるようにqtbaseディレクトリにあるmodefier configure.bat(最初の18行のみ)
@echo off
set QTSRC=%~dp0
set QTDIR=%CD%
rem if not exist %QTSRC%.gitignore goto sconf
echo Please wait while bootstrapping configure ...
for %%C in (cl.exe icl.exe g++.exe Perl.exe) do set %%C=%%~$PATH:C
rem if "%Perl.exe%" == "" (
rem echo Perl not found in PATH. Aborting. >&2
rem exit /b 1
rem )
if not exist mkspecs (
md mkspecs
if errorlevel 1 goto exit
)
rem Perl %QTSRC%bin\syncqt.pl -minimal -module QtCore -outdir "%QTDIR%" %QTSRC%
rem if errorlevel 1 goto exit
2- configure -opensource -confirm-license -mp -nomake examples -nomake tests -release -c++11 -no-warnings-are-errors -platform win32-msvc2015 -no-ltcg
3- nmake