Qt 5的git源碼編譯,qtgit源碼編譯
Qt 5的git源碼編譯
由於一些需求,需要接觸Qt3D。雖然Qt 3D還沒有問世,但是據稱已經差不多完成了。Qt 3D的組建是2.0,將會併入Qt 5.5中。現在還是有一些途徑來擷取Qt 3D的。那就是使用git擷取最新的源碼進行編譯。花了好幾天的時間,終於成功了。下面分享一下心得。
蔣彩陽原創文章,首發地址:http://blog.csdn.net/gamesdev/article/details/43404647。歡迎同行前來探討。
1、下載並且安裝git forwindows。git是開源世界協同工作的版本控制工具,這裡下載就不再贅述了。
2、下載ActivePerl,在產生repository的時候是非常有用的。
http://downloads.activestate.com/ActivePerl/releases/5.20.1.2000/ActivePerl-5.20.1.2000-MSWin32-x64-298557.msi
3、找到Qt 5的gitorious鏡像
git@gitorious.org:qt/qt5.git
可以使用https協議clone,也可以使用git協議clone。如果使用git協議進行clone,需要ssh。使用git bash,輸入ssh-keygen,按照提示產生公開金鑰和私密金鑰。在gitorious網站中進行註冊,最後將產生的id_rsa.pub編輯複製粘貼到gitorious網站中。
4、隨便找一個檔案夾,比如說
G:/Qt5-Dev
在這裡面點擊右鍵菜單,有一個git bash,在這裡就可以進行菜單操作了。
5、首先將遠端資料clone下來。
git clone git@gitorious.org:qt/qt5.git .
6、因為在git bash中,是msys互動環境,也就是和Unix一樣的sh環境,這個和Windows的命令提示字元(CommandPrompt)不一樣,所以要按照Unix的方法設定環境變數。
export PATH=\
/e/Develop/Perl64/bin:\
/e/Develop/Git/bin:\
/e/Develop/Qt5.4/Tools/mingw491_32/bin:\
/e/Develop/Python3.4
這裡讓Perl的位置在Git之前,因為ActivePerl是官方推薦的Perl,Git中也有Perl,但是我嘗試了一下,使用下列命令的時候會出錯:
"GetOptionsFromArray" is notexported by the Getopt::Long module
Can't continue after import errors atinit-repository line 196
BEGIN failed--compilation aborted atinit-repository line 196.
導致無法進行,所以盡量使用ActivePerl來完成任務。
7、使用Perl命令添加庫
標準情況下,使用
perl init-repository就可以了。
如果需要指定初始化的庫,那麼使用–module-subset指定模組。因為我需要選用並且測試Qt3D,所以這麼寫:
perl init-repository–module-subset=qtbase,qtsvg,qtdeclarative,qttools,qtxmlpatterns,qtdoc,qlalr,qtrepotools,qtqa,qtlocation,qtgraphicaleffects,qtimageformats,qtxmlpatterns,qtquickcontrols,qt3d
如果上次沒有完成,那麼可以指定-f來強制重新初始化。這其中可能要求多次輸入密碼,密碼沒有回顯,請注意。
8、這個時候開始configure編譯了,一般來說只需要
configure.bat ^
-developer-build -confirm-license-opensource ^
-debug-and-release
就可以了。
9、使用mingw32-make進行編譯。命令是
mingw32-make -j 4
使用四個線程對Qt進行編譯。
10、由於是developer-build,最好不要makeinstall,直接在源碼上使用吧。因為開發人員版可能有各種各樣的問題,所以在這個時候排錯會好一些。我就是使用debug版進行錯誤排除的。