成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Qt工程轉(zhuǎn)換成VS工程VS工程轉(zhuǎn)QTcreator-創(chuàng)新互聯(lián)

Qt工程轉(zhuǎn)換成VS工程

標(biāo)簽: 工程轉(zhuǎn)換VS

龍泉ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

在windows下,運行Qt Command Prompt。

輸入命令行:

qmake -tp vc XXX.pro

會生成文件XXX.vcxproj

Visual Studio的project轉(zhuǎn)成QT Creator的

project

本人QT生手,最近項目上卻有個需求,要將原本的Visual Studio的project轉(zhuǎn)成QT Creator的project。在進(jìn)行了一番研究和動手實踐以及再研究再實踐之后,終于成功完成了這一轉(zhuǎn)換,特此記錄。

環(huán)境:

- Visual Studio 2013 (Ultimate)

- QT 5.5 Community

- 原本的VS工程是一個生成dll的工程

- 原本的VS工程其實是基于QT Template的工程

 (安裝了QT的VS插件,就可以在VS里建立基于QT template的工程。但是這里又有故事了。對于Visual Studio 2013,插件(add-in)已經(jīng)不再是推薦的方式,推薦的方式叫做package或extension。所以一旦你安裝了QT的插件(往往是2012版的),再想卸載它就無比困難了,就連MSDN上也沒能寫一個很清晰的解決方案,而網(wǎng)上的解決方案多為修改注冊表,筆者沒有試過,不知道能否卸載干凈。)

先介紹一下QT工程的特點。相比于VS,QT的工程文件很簡單,就是一個.pro文件,當(dāng)然,有的時候還有.pri文件和.pro.user文件。.pro文件的目的是為了實現(xiàn)cross platform,即跨平臺。.pro文件的內(nèi)容都是配置信息,比如指明頭文件所在,庫文件所在,庫文件名,目標(biāo)文件名等等。.pri文件也是一種.pro文件,只是因為它是假定要被某.pro文件include的,所以叫.pri而沒有叫.pro文件。在我的實例當(dāng)中,.pri文件中主要是HEADERS和SOURCES,分別代表頭文件和源文件。最后,.pro.user文件是一個xml文件,它是自動生成的,主要記錄的是QT Creator里項目的配置信息,包括一些系統(tǒng)的環(huán)境變量等。

關(guān)于.pro文件的內(nèi)容以及如何編寫.pro文件,網(wǎng)上有很多不錯的文章,這里就不贅述了。貼幾篇文章的鏈接如下:

  • 10分鐘學(xué)會qmake

  • qmake教程

  • qmake概念

  • qmake高級概念

  • qmake命令參考

  • 一篇轉(zhuǎn)了以上所有文章的文章

以上談.pro文件的時候還談到了qmake,那么它是什么呢?為何說.pro文件是為了跨平臺而寫的呢?原來,qmake是Trolltech公司(于2008年被諾基亞收購)創(chuàng)建的用來為不同的平臺和編譯器書寫Makefile的工具。手寫Makefile是比較困難并且容易出錯的,尤其是需要給不同的平臺和編譯器組合寫幾個Makefile。使用qmake,開發(fā)者創(chuàng)建一個簡單的“項目”文件(即.pro文件)并且運行qmake生成適當(dāng)?shù)腗akefile。qmake會注意所有的編譯器和平臺的依賴性,可以把開發(fā)者解放出來只關(guān)心他們的代碼。Trolltech公司使用qmake作為Qt庫和Qt所提供的工具的主要連編工具。

那么了解了qmake和.pro文件的寫法之后,再來看看我的轉(zhuǎn)換歷程吧。

第一步,因為原Visual Studio工程就是基于QT Template的工程,所以我們可以用VS里的QT插件里的"Create basic .pro file..."菜單選項來自動生成一個.pro文件,實際上,不僅僅生成了.pro 文件,還生成了.pri文件。但是目前的.pro文件還是不能用的,因為其中還有大量的配置需要修改,比如INCLUDEPATH和LIBS.

第二步,修改.pro文件使其包含正確而必要的配置信息。

總結(jié)筆者對.pro文件的具體修改如下:

1. TEMPLATE = lib

2. 將DESTDIR =  xxx改成:

  Release:DESTDIR = xxx/Release

  Debug:DESTDIR = xxx/Debug

3. CONFIG += debug_and_release

4. 完善INCLUDEPATH

5. 完善DEPENDPATH (這里又有故事了:事后筆者發(fā)現(xiàn),只要在LIBS里寫了-L"<LIBPATH>",就沒必要寫DEPENDPATH了。)

6. 加上 Release:DEPENDPATH 和 Debug:DEPENDPATH

7. 類似的,完善LIBS,添加Release:LIBS和Debug:LIBS

第三步,雙擊改好的.pro文件,QT Creator打開此工程,選中合適的Kit,就可以build了。因為是64位機(jī)器,Kit選的是QT 5.5.1的msvc2013_64.

最后千萬要注意的是,在系統(tǒng)環(huán)境變量%PATH%里,對于Visual Studio的編譯器cl.exe和鏈接器link.exe, 要選對路徑。比如,對于64位的機(jī)器,路徑 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64 應(yīng)該被加到%PATH%中,而不是 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 這一條在前一篇博文中已有詳細(xì)闡述。

以上步驟做完后,就可以順利地在QT Creator中進(jìn)行build了。

最后還要提醒的一點是,如果更改了.pro文件,想讓更改生效,必須手動刪除qmake生成的Makefile, Makefile.Debug和Makefile.Release文件。

下面是一個.pro文件的實例:

[plain] view plainQt工程轉(zhuǎn)換成VS工程  VS 工程轉(zhuǎn)QT creatorQt工程轉(zhuǎn)換成VS工程  VS 工程轉(zhuǎn)QT creator

  1. TEMPLATE = lib

  2. TARGET = MyProject

  3. Release:DESTDIR = ../../../Output/x64/Release

  4. Debug:DESTDIR = ../../../Output/x64/Debug

  5. QT += core qml

  6. CONFIG += debug_and_release

  7. DEFINES += WIN64 QT_DLL QT_QML_LIB MyProject_LIB

  8. INCLUDEPATH += ./GeneratedFiles \

  9.     . \

  10.     ./GeneratedFiles/Release \

  11.     $$(VC_INCLUDE) \

  12.     $$(VC_INCLUDE)/../atlmfc/include \

  13.     $$(WINSDK_INCLUDE)/shared \

  14.     $$(WINSDK_INCLUDE)/um

  15. DEPENDPATH += . \

  16.     $$(WINSDK_LIB)/um/x64 \

  17.     $$(VC_LIB)/amd64 \

  18.     $$(QTDIR)/lib \

  19.     $$(QTDIR)/bin \

  20. Release:DEPENDPATH +=  ../../../3rd_library/opencv/libs/Release/x64 \

  21.     ../../../3rd_library/DirectShow/baseclasses/x64/Release

  22. Debug:DEPENDPATH += ../../../3rd_library/opencv/libs/Debug/x64 \

  23.     ../../../3rd_library/DirectShow/baseclasses/x64/Debug

  24. MOC_DIR += ./GeneratedFiles/release

  25. OBJECTS_DIR += release

  26. UI_DIR += ./GeneratedFiles

  27. RCC_DIR += ./GeneratedFiles

  28. Release:LIBS += -L"../../../3rd_library/DirectShow/baseclasses/x64/Release" \

  29.     -lstrmbase \

  30.     -L"../../../3rd_library/opencv/libs/Release/x64" \

  31.     -lqtmain \

  32.     -lQt5Qml \

  33.     -lQt5Core \

  34.     -lopencv_calib3d248 \

  35.     -lopencv_contrib248 \

  36.     -lopencv_core248 \

  37.     -lopencv_features2d248 \

  38.     -lopencv_flann248 \

  39.     -lopencv_gpu248 \

  40.     -lopencv_highgui248 \

  41.     -lopencv_imgproc248 \

  42.     -lopencv_legacy248 \

  43.     -lopencv_ml248 \

  44.     -lopencv_nonfree248 \

  45.     -lopencv_objdetect248 \

  46.     -lopencv_ocl248 \

  47.     -lopencv_photo248 \

  48.     -lopencv_stitching248 \

  49.     -lopencv_superres248 \

  50.     -lopencv_ts248 \

  51.     -lopencv_video248 \

  52.     -lopencv_videostab248

  53. Debug:LIBS += -L"../../../3rd_library/DirectShow/baseclasses/x64/Debug" \

  54.     -lstrmbasd \

  55.     -L"../../../3rd_library/opencv/libs/Debug/x64" \

  56.     -lqtmaind \

  57.     -lQt5Qmld \

  58.     -lQt5Cored \

  59.     -lopencv_calib3d248d \

  60.     -lopencv_contrib248d \

  61.     -lopencv_core248d \

  62.     -lopencv_features2d248d \

  63.     -lopencv_flann248d \

  64.     -lopencv_gpu248d \

  65.     -lopencv_highgui248d \

  66.     -lopencv_imgproc248d \

  67.     -lopencv_legacy248d \

  68.     -lopencv_ml248d \

  69.     -lopencv_nonfree248d \

  70.     -lopencv_objdetect248d \

  71.     -lopencv_ocl248d \

  72.     -lopencv_photo248d \

  73.     -lopencv_stitching248d \

  74.     -lopencv_superres248d \

  75.     -lopencv_ts248d \

  76.     -lopencv_video248d \

  77.     -lopencv_videostab248d

  78. LIBS += -L"$$(WINSDK_LIB)/um/x64" \

  79.     -L"$$(VC_LIB)/amd64" \

  80.     -L"$$(QTDIR)/lib" \

  81.     -L"$$(QTDIR)/bin" \

  82.     -lWtsapi32 \

  83.     -lPathcch \

  84.     -l3DScanningEngine \

  85.     -lUserenv \

  86.     -lwinmm \

  87.     -lMf \

  88.     -lMfplat

  89. include(MyProject.pri)

在實際build的過程中,筆者又發(fā)現(xiàn)QT是調(diào)用jom.exe去做的。這是個什么呢?原來,在VS里面,有一個工具叫做nmake,它和Linux上的make很像。但是這個nmake有一個缺點(筆者不確定現(xiàn)在還有沒有這個缺點,但在2009年的時候是有的),就是它無法利用多核的優(yōu)勢并行編譯。于是,就有人寫了這么一個叫做jom的工具,類似于是多線程版本的nmake. 最初的那篇介紹jom的文章在這里: http://blog.qt.io/blog/2009/03/27/speeding-up-visual-c-qt-builds/

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:Qt工程轉(zhuǎn)換成VS工程VS工程轉(zhuǎn)QTcreator-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://jinyejixie.com/article28/ccphcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、軟件開發(fā)標(biāo)簽優(yōu)化、手機(jī)網(wǎng)站建設(shè)、虛擬主機(jī)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
安新县| 安化县| 六安市| 漠河县| 饶河县| 泗阳县| 阳新县| 克拉玛依市| 云梦县| 大关县| 宜君县| 通渭县| 灵台县| 通渭县| 南江县| 南充市| 广宁县| 株洲市| 沂源县| 宁南县| 定日县| 边坝县| 莎车县| 高密市| 永济市| 吴川市| 郯城县| 和平区| 九龙县| 常山县| 建水县| 海林市| 济源市| 和顺县| 南京市| 余庆县| 环江| 砀山县| 宝丰县| 永仁县| 石渠县|