Windows平台上編譯Qt-4.8.x Debug版注意事項

來源:互聯網
上載者:User

標籤: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子項目裁剪
  1. 輸入cmd,進入命令列環境
  2. 運行Visual Studio內建的那個VC vsvarsall.bat指令碼,自動設定環境參數(qt configure時需要調用cl做編譯測試)
  3. 先運行一次configure:
    命令列: configure -debug -opensource -no-qt3support -platform win32-msvc2008 -webkit-debug -no-s60
    讓qmake為所有的Qt項目產生全部的*.vcproj(VS專案檔)
  4. 從projects.pro中刪除demos、tools、examples、docs、translations模組(#注釋掉對應行)再次運行一次configure。
    這會影響最終產生的projects.sln,使得其只包含必要的子項目模組
    如果你不在這個時候刪除,則預設產生的projects.sln會包含全部.pro對應的.vcproj子項目,導致不必要的編譯。
  5. 用VS2008開啟projects.sln,預設startup項目是bootstrap。加入demos/browser、QtUITools 2個項目(找到對應的.vcproj檔案,加入即可)
  6. 先編譯一次;
  7. 然後選中QtWebKit作為startup項目,再build一次;
    這裡會提示webcore編譯失敗,修改DefaultLocalizationStrategy.cpp報錯行,刪除掉那個全形雙引號即可;
  8. 最後選中browser項目,再build一次;
    這回提示找不到QtUIToolsd.lib連結,添加對應的vcproj即可(tools\designer\src\uitools\QtUiTools.vcproj)
  9. 注意,在這種配置下,有些子項目模組最終仍然沒有被編譯到,說明對QtWebKit來說,根本不需要(比如那個phonon)
    1. 但是當需要在Qt-4.8.x上編譯更高版本的WebKit時,這些項目模組仍然需要(如QtSql、QtXml等)
  10. 再次編譯,這回成功了
4 調試QtWebKit

設定QtWebKit為啟動項目,調試命令列為demos/browser程式的完全路徑,啟動路徑設為Qt bin。 

Windows平台上編譯Qt-4.8.x Debug版注意事項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.