<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Qt裁剪 默認編譯出來的Qt庫是很大的,有幾十M,甚至上百M。 為了將Qt庫放入小容量的SPI flash中,我們需要去除不必要的庫,裁剪必要的庫。 ## 去除不必要的庫 ## 裁剪feature ~~~ ./src/corelib/global/qfeatures.h ./configure -qconfig myfile ~~~ 針對嵌入式版本的配置 Qt的嵌入式版本本身就支持feature裁剪,我們可以充分利用這一特性讓Qt庫盡量變小。具體的做法是要做一個自己的qconfig-[myconfig].h特性文件,該文件中定義你要去掉Qt中的哪些feature。在configure的時候加“-qconfig myconfig” 選項, Qt就會根據你給出的配置文件來編譯,以達到裁剪的目的。這里要強調一下,這種裁剪方式只適用于嵌入式版本。這里的myconfig可以用任何你喜歡的名字來代替。 在qt的代碼中已經給出了一些qconfig頭文件的例子,默認編譯采用full config也就是 不裁剪任何feature。所有Qt預定義好的qconfig文件,可以在src/corelib/global/下找到,包括qconfig-minimal.h, qconfig-small.h, qconfig.medium.h,qconfig-large.h和qconfig-dist.h,也就是從裁剪量由多到少都有據可依。如果要添加你自己的配置文件,要在src/corelib/global下建立一個形如qconfig-xxx.h的文件,這個xxx也就是你要在configure的時候傳入的qconfig參數。 筆者測試使用的Qt版本是4.4.1,這個版本的build system有個小毛病,就是如果你指定的qconfig參數實際上沒有qconfig-xxx.h文件對應, build不會停止,它只會給出一個不起眼的提示,編譯過程會繼續, 這一點挺讓人費解的。而且這種情況下Qt編譯使用的配置基本上和fullconfig相同,鑒于它的讓人迷惑的舉動,個人覺得有必要提醒大家一下,使用自定義qconfig的時候一定要確定配置文件放對了位置,而且qconfig參數給的正確。 一般我們的建議是在桌面上測試階段編譯一個full的版本,再根據你的項目使用Qt feature的情況總結哪些可去掉的feature。 feature之間有千絲萬縷的依賴關系,這個問題也是困擾很多人的難點所在。具體的依賴可以查閱src/corelib/global/qfeatures.h和src/corelib/global/qfeatures.txt(描述依賴關系的文檔)。另外,Qt里還提供了一個可視化的配置依賴的工具,叫做qconfig,在QTDIR/tools/qconfig目錄。該工具需要基于Qt桌面版本編譯。 如在我的linux系統下可以用下面的命令來編譯: $ cd qt-embedded-linux-commercial-4.4.1/tools/qconfig $ /usr/local/Trolltech/Qt-4.4.3/bin/qmake $ make 編譯成功后運行./qconfig,初始要打開qfeatures.txt. Qconfig讀取該文件生成一個樹狀圖,該圖很清楚的顯示出feature之間的依賴關系。如下圖所示,如果你去掉了LINEEDIT這個feature,用到該控件的combobox也就不能繼續使用了。有了這個工具裁剪Qt變得簡潔直觀,方便了很多。 選定了你要去掉的feature后點擊菜單File->Save As..會彈出保存文件的頁面,文件名字應該定義成qconfig-xxx.h的形式,這樣你在configure的時候就可以傳入相應的qconfig參數了。 你還可以通過選擇File->Open打開現有的qconfig-xxx.h文件,通過修改已經有的文件更快的編輯配置。 根據筆者測試,未經裁剪的qte4.4.1編譯出來為: ~~~ libQtCore.so是2.6M libQtGui.so是9.5M ~~~ 如果用small來編譯,就能縮小為: ~~~ libQtCore.so是2.0M libQtGui.so是5.7M ~~~ 差異還是比較明顯的。 ## 使用靜態編譯 1. 在編譯Qt庫時使用-static選項 2. 重新編譯qtserial等庫,并install 3. 在pro里加上QT += core gui sql serialport 4. 程序改為release 實測減少有限
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看