㈠ 為什麼qtcreator的編譯如此之慢
c 的編譯很慢,與其他語言完全不在一個數量級。任何c 項目都比其他語言的編譯慢,一方面是c 語言本身復雜,另外一方面是c 頭文件太大,很多庫是直接在頭文件裡面實現的,所以每次需要編譯的代碼量很大。這個跟c#沒有可比性。mfc使用預編譯頭文件來緩解這個問題,在vc裡面集成了預編譯好的mfc頭文件,因而編譯速度過得去。qtcreator使用mingw-gcc編譯,沒有預編譯頭文件的機制,對每個源代碼都需要編譯qt的頭文件,所以完全編譯會是慢的。
㈡ qtscrcpy怎樣安裝
qtscrcpy是一個用於在pc上控制安卓設備的開源項目,它基於adb(android debug bridge)實現。以下是在windows操作系統上安裝qtscrcpy的步驟:
1. 安裝adb驅動:在pc上安裝adb驅動程序,可以從官方網站下載sdk platform tools並解壓到任意位置,將解壓後的文件夾路徑添加到環境變數中。
2. 下載qtscrcpy:從qtscrcpy的官方github頁面下載最新版本的qtscrcpy。你可以選擇下載預編譯版本,或者下載源代碼並自行編譯。
3. 安裝qt:qtscrcpy是一個基於qt框架開發的項目,因此你需要安裝qt。你可以從qt官方網站下載qt安裝程序,並根據需要選擇所需的版本和組件進行安裝。
4. 編譯並運行qtscrcpy:如果你下載了源代碼,可以使用qt creator打開qtscrcpy的.pro項目文件並進行編譯。如果你下載了預編譯版本,可以解壓縮並運行qtscrcpy的可執行文件。
5. 連接安卓設備:在pc上運行qtscrcpy後,將安卓設備通過usb連接到pc上,並啟用usb調試模式。
6. 控制安卓設備:在qtscrcpy界面上,你可以通過滑鼠和鍵盤控制安卓設備,包括屏幕截圖、錄制屏幕、復制粘貼等功能。
請注意,以上是在windows操作系統上安裝qtscrcpy的基本步驟。如果你使用的是其他操作系統或有特殊需求,可能需要進行適當調整。
㈢ :-1: 錯誤:qt creator 需要設置一個編譯器來構建。在構建套件選項里設置一個編譯器。
首先,官方預編譯版本不帶有編譯器(除mingw版本外),其它版本都需要自行安裝。
有兩個選擇:
完整安裝vs2012旗艦版,安裝完之後佔用空間8個多g,(組件最小化之後,不包含幫助),給個地址http://go.microsoft.com/?linkid=9810280,序列號網路,基本能用
安裝windows sdk 8.1 中的 vc compiler 2012,其它全部勾選掉,或者連同sdk一塊裝了。
http://go.microsoft.com/fwlink/?linkid=226658 在線安裝程序,或者通過win8應用商店安裝。
之後進入工具->選項->構建和運行->編譯器選項卡里就會識別出來 vc 編譯器。切換到構建套件選項卡,然後自動檢測配置。如果檢測不出來一個desktop套件的話,那麼手動選擇建立一個就行了。
㈣ 如何靜態編譯發布qt應用程序
如果你說的是qt程序的話,靜態編譯就得自行從源碼開始編譯qt靜態庫,官網預編譯的版本是不包含靜態庫的。這個很復雜,請參考qt-everywhere-opensource 中提供的編譯幫助。注意如果使用miongw的話,gcc版本最好不要是4.6.2。這個版本比較特殊,但是它是mingw官方版的最新打包版本。
如果你說的是非qt庫依賴的話,有兩種mingw和vs,前者有部分發行版默認去除了dll依賴,直接連接的靜態庫,後者非常不推薦使用靜態庫,畢竟它載入的是系統常用dll,基本上所有系統都是推薦安裝的運行時環境,用靜態庫吃力不討好。
㈤ qt 軟體中怎麼自動加入build版本號
當進入解壓好的源碼包後,使用./configure –help命令,可以獲得相應幫助,那我們只要選取參數部分看看
-release
這個參數顯而易見,就是編譯qt以發布版的模式進行,一般來說,最後系統完成後,庫就應該是發布版。
-release
與上面對應,自然是調試版了,如果開發的話,可以選擇它吧。
-debug-and-release
囧,上面那兩個的兒子。
-developer-build
囧,我錯了,開發者也可以用這個的,選了這個後,可以進行自動測試,不過還沒去用過,以後可以研究研究。
-opensource
-commercial
這兩個參數是指是編譯是商業版本的,還是開源版本呢,視個人情況而定。
-shared
-static
這兩個參數是指qt的lib以動態還是靜態編譯生成,這自然也是視個人需要的。
-no-fast
-fast
這兩個就很有關系,如果對自己的電腦性能很有信心,那就選第一個,那所有的工程文件都會生成到makefiles中,那編譯的時間,估計可以看完變形金剛了。如果選第二個,那就加入子目錄和庫到makefiles,這樣就能加快編譯的速度。
-no-largefile
-largefile
顧名思義,支不支持大文件,一般來說,嵌入式里是不會有從超過4g的大文件的,那就選第一個吧。
-no-exceptions
-exceptions
計算機英語夠好的人都該懂,這個自然就是異常情況,選則編譯器支持拋出異常,否則不支持。
-no-accessibility
-accessibility
可訪問性的支持,說實話,這個我真不知道有什麼有用了。等哪天發現了,再來好好解釋。
-no-stl
-stl
是都加入stl的支持,stl,這應該算是c++程序員應該都了解了,再不濟,那也總聽說過大名吧。
no-sql-
-qt-sql-
-plugin-sql-
這 個可要好好說明下,一般來說,對於一個優秀的項目開發,資料庫是必不可少的,qt也自帶了大多數資料庫驅動,可以完美地支持資料庫的使用。對於數 據庫的使用,我們可以直接qt驅動編譯進去,或者以插件的形式編譯進去。一般來說,最簡單地就是直接編譯進去,但使用插件形式的可以更加靈活,針對不同的 需求將驅動插件添加。其中,<>代表的是驅動名,如果我想直接添加sqlite的支持話,形式如下:-qt-sql-sqlite。其他名稱 可以自己查看參數里,有詳細地介紹。
-system-sqlite
sqlite真受歡迎啊,當然那麼優秀的嵌入式資料庫,本人也是基本使用它來進行開發。這個參數意思是使用操作系統上的sqlite資料庫,如果是不太會移植的,可以考慮直接使用qt自帶的驅動。
-no-qt3support
-qt3support
這個也是簡潔易懂,加不加對qt3的支持。
no-xmlpatterns
-xmlpatterns
選擇對xml的支持,如果對網路無需求的話,就不用加了。
-no-phonon
-phonon
phonon是qt中處理多媒體的模塊,比如放放視頻什麼來著,不過本人從沒用過,也是根據需要選擇的。
-no-phonon-backend
-phonon-backend
與上面類似,只不過這兩是以插件的形式加入支持。
-no-svg
-svg
是否加入svg的支持,svg即可縮放矢量圖形。
-no-webkit
-webkit
是否加入webkit的支持,這可是個好東西,不過如果跟網路不搭界的話,還是不支持吧。
-no-scripttools
-scripttools
是否加入腳本工具的支持,這對php等腳本工程師來說是個很棒的參數,但對於我這樣菜鳥,就別提了。
-platform target
目標平台,這可是關鍵了,如果不注意的話,編譯出來是x86上的話,哪怕是再牛的嵌入式工程師來也沒法幫你移植到開發板上。通常,本人是linux-arm-g 。
-no-mmx
-no-3dnow
-no-sse
-no-sse2
這四個參數是針對cpu的指令集,老實說,我也不甚了解,不過,對於開發並不是影響很大。
-qtnamespace
把qt的庫封裝到命名空間,沒啥重要用處,依個人愛好加吧。
-qtlibinfix
將所有的qt的.so庫重命名,也沒啥大用處。
-no-sql-
-qt-sql-
-plugin-sql-
-system-sqlite
這是相當明顯的,如果這都看不出來,,囧,那您一定比我近視(本人800度近視。。)
就 是說如果是-no-xx-,就說明編譯時不選擇這個參數,如過是-qt-xx-,說明我們可以編譯直接選用qt自帶的驅動,如果是 -plugin-xx-,就是將驅動以插件形式編譯,而-system-xxx,當然是使用操作系統提供的驅動,不過那就需要您自己移植了,而且有時還要 用第三方的api,就方便來說非常麻煩,但是不排除您是牛人要好好玩玩的情況。
接下來,我們接著研究配置參數。
-qt-zlib
-system-zlib
想 必經過上面的講解,參數的意思已經很快得知,就是選擇qt帶的zlib庫還是系統的zlib。zlib庫是用於文件和資料壓縮的庫,對於新入嵌入式的人來 說,可能並無太大的用處,但是在以後的實際開發中,特別是對於多媒體圖像圖形的工程師來說,就肯定用到,因為圖形圖像的壓縮都要使用或涉及到這個庫。
-no-gif
-qt-gif
這是選擇gif的支持,如果選擇qt支持的話,那在用qt開發的項目中,就能顯示gif圖,gif也是比較普遍的圖片格式了,英文全稱是graphics interchange format。
-no-libtiff
-qt-libtiff
-system-libtiff
tiff是一種非常復雜的光柵圖像格式,並且有直接現成的c語言實現庫,因此選擇參數時就有了qt和system,一般來說,科學相關的開發里可能會用到。
-no-libpng
-qt-libpng
-system-libpng
png的相關參數,一種非失真性壓縮點陣圖圖形文件格式,其實就是為了替代gif搞出來的,也是隨實際需要來選擇,當然,也有c語言實現的庫。
-no-libmng
-qt-libmng
-system-libmng
大汗,大汗,這可是超級罕見的東西,qt竟然也能支持,說實話,這個參數我看來就是無視的。mng是多幀png動畫格式,結構極其復雜,基本沒人用。
-no-libjpeg
-qt-libjpeg
-system-libjpeg
jpeg,這么有名的圖片格式也不用說了,隨需要選擇吧。
-no-openssl
-openssl
-openssl-linked
ssl,security socket layer,是一個安全傳輸協議,在internet網上進行數據保護和身份確認,而openssl是一個開放源代碼的實現了ssl及相關加密技術的軟體 包,在qt中,我們可以選擇直接支持,或者openssl鏈接支持,這個參數也是為有需要者提供的。
以上是第三方庫的參數選擇,緊接著就是qt附加參數,在附加參數里,我們可以指定編譯的部分及加入參數來獲取信息。
-make
-nomake
一 句話,說明,就說我可以這兩個參數選擇哪些我要編譯,哪些我不需要,在 libs tools examples demos docs translations這些里你可以選擇,比如examples,並不重要,可以放在-nomake後,這樣編譯過程中就不會編譯這部分了。通過適當的 選擇,我們可以大大加快編譯的速度,這對配置較差的機子來說有著積極意義。
-r
-l
這兩個參數是為編譯時增加一個庫的運行路徑及頭文件的路徑,比如使用tslib作為開發觸摸驅動時,我們就應使用這兩個參數來指定tslib的庫路徑和頭文件路徑。
-no-rpath
-rpath
這個參數比較難於理解,簡單地說,就是告訴動態載入器,到-rpath指定的目錄中尋找編譯時須要的動態鏈接庫,語法就與上面的參數結合,比如 -rpath -r/home/xxxx。
-continue
這個參數的作用就是當出現錯誤時依然進行配置編譯,換我是不會加上的。
-verbose, -v
這個參數就很眼熟,在前面的文章中有過詳細介紹,簡言之,就是顯示配置的每一步的具體信息。
-no-optimized-qmake
-optimized-qmake
是否編譯生成優化過的qmake,沒啥大用,也屬於可有可無的參數。
-no-nis
-nis
是否編譯nis支持,nis(網路信息服務)是一個提供目錄服務的rpc(遠程過程調用)應用服務,當然沒網路需要的可以再次華麗地無視。
-no-cups
-cups
是 否編譯cups支持,是不是想問什麼用啊?~~~~囧,開列印店用的。好了,不說冷笑話,cups給unix/linux用戶提供了一種可靠有效 的方法來管理列印。它支持ipp,並提供了lpd,smb(服務消息塊,如配置為微軟windows的列印機)、jetdirect等介面。cups還可 以瀏覽網路列印機。它的開發提供者是大名鼎鼎的「水果生產商」----蘋果公司。
-no-iconv
-iconv
選擇是否編譯iconv支持,iconv是一個計算機程序以及一套應用程序編程介面的名稱。它的作用是在多種國際編碼格式之間進行文本內碼的轉換。這對跨語言qt開發人員來說是很有用的,當然,考慮到中文的編碼,我也選擇加入支持。
-no-pch
-pch
是 否支持預編譯過的頭文件。預編譯頭就是把一個工程中的一部分代碼,預先編譯好放在一個文件里(通常以.pch為擴展名),這個文件就稱為預編譯頭 文件。這些預先編譯好的代碼在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。媽媽經常說:不懂就要學。我說:不 懂就加上。。。
no-dbus
-dbus
-dbus-linked
是否編譯編譯qtdbus模塊。dbus是freedesktop下開源的linux ipc通信機制,本身linux 的ipc通信機制包括,管道(fifo),共享內存,信號量,消息隊列,socket等。在qt中dbus是有單獨的模塊的,可見其重要性。
-rece-relocations 對於額外的庫鏈接器優化,可以減少編譯中的再定位。
no-separate-debug-info
-separate-debug-info
是否存儲debug信息在.debug,一般為了查錯,還是選擇存儲吧。
-xplatform target
相當淺顯的參數,即交叉編譯的目標平台,一般來說根據你所要移植的目標板來確定。
-no-feature-
-feature-
選 取qte的feature編譯,對於這個,我理解為特性,特性的描述你可以參考src/corelib/global/qfeatures.txt,在這 裡面對於每個特性都有比較充分的講解。對於特性地選擇,也是要根據開發需求進行,如果裁剪適當,能大大為qte庫瘦身。
-embedded
嵌入式平台架構選擇,可以選擇arm,mips,x86及generic,視你的目標平台決定吧。
-armfpa
-no-armfpa
這個參數也只是針對arm平台的,是否加入對於基於arm的浮點數格式的支持,通常,這個參數在編譯時會自動選擇。
-little-endian
-big-endian
目標平台的大端和小端選擇,這應該是常識了,如果這不知道,就不要來混嵌入式了
-host-little-endian
-host-big-endia
主機平台的大端和小端選擇,屬於雞肋的參數,不選擇也會在配置時自動選擇。
-no-freetype
-qt-freetype
-system-freetype
選擇freetype,freetype庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的介面來訪問多種字體格式文件,在嵌入式開發中,有套可使用的字體對於中文開發至關重要,本人一般使用文泉驛字體。
-qconfig local
使用本地的qconfig配置文件來替代全部參數配置,有需要的可以去研究下,可以裁剪控制項級別的參數。
-depths
顯示的像素位深,也是根據需要來進行吧。
-qt-decoration-