標籤:des http io os 使用 ar strong for 檔案
Windows平台上編譯Qt-4.8.x Debug版注意事項跳轉至: 導航、 搜尋
目錄
- 1為什麼要編譯qt-4.8.x的Windows Debug版?
- 21 MSVC版本的選擇
- 32 WinRAR的問題
- 43 qmake子項目裁剪
- 54 調試QtWebKit
|
0 為什麼要編譯qt-4.8.x的Windows Debug版?
目的:為了方便調試qt的代碼!VS比Linux gdb好使多了。
1 MSVC版本的選擇
最好使用VS2008+,它的安裝包內建了Windows SDK,不要用過時的VS2005(後者需要額外安裝Windows SDK)
Note:最新版本已經是qt-4.8.6,而且官方發布了WinCE的先行編譯版本。看起來似乎Digia已經解決了icu庫在WinCE上的交叉編譯問題?(待確認)
Note2:VS2008+(VS2010,乃至VS2012、VS2013)似乎預設已經內建了Windows SDK,不像2005還需要另外單獨安裝。
2 WinRAR的問題
從壓縮包qt-everywhere-opensource-src-4.8.2.tar.gz解壓:
——如果使用的winrar程式有問題,可能導致解壓出來的檔案名稱有些變成了*.cpp0000644,使用一個Ruby指令碼批量修正此問題(需要安裝Ruby 1.9.3運行環境)
# Recursive scan a dir, & perform each-file rename operation:def batch_files_from_dir(basepath) sub_dirs = Array.new Dir.new(basepath).entries.each { |subpath| path = File.join(basepath, subpath) if File.file?(path) then if /0000[0-9]{3}$/.match(path) then puts "#{path}" new_path = path.gsub(/0000[0-9]{3}$/, ) File.rename(path, new_path) puts "\t--->#{new_path}" end elsif subpath!="." and subpath!=".." and File.directory?(path) then batch_files_from_dir(path) end }endARGV.each{ |path| batch_files_from_dir( path )}3 qmake子項目裁剪
- 輸入cmd,進入命令列環境
- 運行Visual Studio內建的那個VC vsvarsall.bat指令碼,自動設定環境參數(qt configure時需要調用cl做編譯測試)
- 先運行一次configure:
-
命令列:
configure -debug -opensource -no-qt3support -platform win32-msvc2008 -webkit-debug -no-s60
-
讓qmake為所有的Qt項目產生全部的*.vcproj(VS專案檔)
- 從projects.pro中刪除demos、tools、examples、docs、translations模組(#注釋掉對應行)再次運行一次configure。
-
這會影響最終產生的projects.sln,使得其只包含必要的子項目模組
-
如果你不在這個時候刪除,則預設產生的projects.sln會包含全部.pro對應的.vcproj子項目,導致不必要的編譯。
- 用VS2008開啟projects.sln,預設startup項目是bootstrap。加入demos/browser、QtUITools 2個項目(找到對應的.vcproj檔案,加入即可)
- 先編譯一次;
- 然後選中QtWebKit作為startup項目,再build一次;
-
這裡會提示webcore編譯失敗,修改DefaultLocalizationStrategy.cpp報錯行,刪除掉那個全形雙引號即可;
- 最後選中browser項目,再build一次;
-
這回提示找不到QtUIToolsd.lib連結,添加對應的vcproj即可(tools\designer\src\uitools\QtUiTools.vcproj)
- 注意,在這種配置下,有些子項目模組最終仍然沒有被編譯到,說明對QtWebKit來說,根本不需要(比如那個phonon)
- 但是當需要在Qt-4.8.x上編譯更高版本的WebKit時,這些項目模組仍然需要(如QtSql、QtXml等)
- 再次編譯,這回成功了
4 調試QtWebKit
設定QtWebKit為啟動項目,調試命令列為demos/browser程式的完全路徑,啟動路徑設為Qt bin。
Windows平台上編譯Qt-4.8.x Debug版注意事項