QT源碼和SDK下載linux
http://download.qt.iochrome
QT5.13安裝windows
windows下一般使用VS來開發,而linux下則使用OtCreator來開發。socket
linux,以Ubuntu爲例函數
安裝Qt前須要先安裝 g++ make工具
sudo apt-get install libgl1-mesa-devui
安裝環境準備好後直接安裝 ./qt-opensource-linux-x64-5.13.0.run 便可。google
注意:通常安裝在/usr下,裏面不少文件夾,根據文件的類型,分門別類,不是一個軟件一個文件夾。之前老版本的Linux習慣放在/usr/local目錄下。插件
部分軟件放在/opt下,則是一個軟件統一在一個文件夾下。/opt目錄專門是用來給第三方軟件放置文件的,好比一些壓縮包解壓的軟件都放在這裏。命令行
好比「網易雲音樂」就安裝在/usr/lib/netease-cloud-music
好比Chrome就放在/opt/google/chrome
Windows下調試工具的安裝設置(使用微軟的編譯器)
安裝完VisualStudio2017後,接着安裝win10 SDK,安裝完成後,在C:\Program Files (x86)\Windows Kits\10\Debuggers\x64(x86)下有一個cdb.exe用於調試。
Windows下,爲QTCreator配置時注意使用的QT支持的編譯器和VS支持的編譯器必須一致。這裏咱們使用VS2017和QT5.13。
安裝完後,打開Kits界面,以下所示進行查看。編譯器有可能沒有配置,須要手動選擇一下。
QTCreator項目配置
1 配置庫和頭文件
而後導入頭文件和lib文件所在路徑,將dll拷貝到可執行目錄下。
二、VS+QT項目配置
2.一、 首先安裝QT的插件,根據VS的版本安裝,這裏使用qt-vsaddin-msvc2017-2.3.2
2.二、打開VS後,在菜單欄中的QT VS Tools->QT Options,配置你的QT版本
一 QT程序編譯經歷的步驟
1 qmake編譯pro生成makefile
2 jom或者make編譯makefile
生產界面源碼 uic.exe widget.ui –o ui_widget.h
生產信號槽代碼 moc.exe widget.h moc_widget.cpp
二 手動建立pro
windows下環境設置以下
linux下設置以下
先設置qmake的路徑,而後使用qmake由testqmake.pro文件構建獲得makefile文件。
而後使用make編譯獲得可執行文件。
3、將QtCreator建立的工程轉換爲VS
直接使用命令的行
使用命令行產生的代碼在VS打開時,可能會出現「找不到 Windows SDK 版本8.1.請安裝所需的版本的 Windows SDK 或者在項目屬性頁的問題解決方案」這種錯誤。處理方法以下所示。
或者使用插件也能夠將QTCreator工程轉換爲VS工程。
4、pro文件下添加一個內部庫
不管是經過UI,仍是直接在pro文件中更改,都須要在添加以後,從新執行下qmake。
在幫助手冊中找到你要使用的QT內部類,幫助手冊會告訴你這個類該使用什麼模塊。
5、頭文件引用。
對於工程來講,當前路徑表示的是構建路徑,即和源碼同一級的文件夾下,如圖是build-testqmake-Desktop_Qt_5_13_0_MSVC2017_64bit-Debug文件夾下。
$$PWD是獲取當前源碼路徑,即在testqmake文件夾下,因此如下兩個路徑是相等的。
6、pro文件下 庫引用和庫路徑指定。
語法: LIBS += -L」../../lib」 –lopencv_world320 相似於連接庫
雖然Windows和linux下庫的名字稍有區別
linux下 libopencv_world320.so
windows下 opencv_world320.lib
可是QT會自動幫咱們對應不一樣的平臺。
pro文件下指定運行目錄
DESTDIR += ../../bin
pro文件下指定運行程序名字
TARGET = testq
7、QT建立一個動態庫
pro文件下指定TEMPLATE = lib,若是pro文件下不指定,則默認生成應用程序。
linux下動態庫是xxx.so 靜態庫是xxx.a
windows下動態庫是xxx.dll 靜態庫是xxx.lib,並且動態庫還包含一個標示地址的lib文件,並且,windows下還須要指定導出函數。
8、debug和release版本編譯設置
CONFIG += debug_and_release(默認狀況下是debug和release都有的)
除此以外,CONFIG還提供了CONFIG()函數。以下所示,若是是debug版本則輸出的程序稱爲debug_binary,否在是release_binary。
CONFIG(debug, debug|release){//注意大括號必須緊跟着
TARGET = debug_binary
}else{
TARGET = release_binary
}
9、跨平臺編譯項目
針對不一樣平臺使用不一樣配置
win32:INCLUDEPATH += 「C:/mylibs/extra headers」
win32{
message(win32)
}
不是linux的平臺
!linux{
message(win32)
}
若是是win32或linux
win32|linux{
message(win32)
}
QT內置定義了一些值 win32 linux macx unix
變量 QMAKESPEC 存儲了當前的編譯環境 message($$QMAKESPEC)能夠打印出當前的編譯環境。
咱們能夠查看
QT\5.13.0\msvc2017\mkspecs文件下的平臺。
最後附上一個pro文件
#指定源碼
SOURCES += xsocket.cpp
#指定頭文件
HEADERS += xsocket.h \
xglobal.h
#指定生成的dll的名字
TARGET = libdll
#指定生成動態庫
TEMPLATE = lib
#若是要生成靜態庫則須要再加一個
#CONFIG += staticlib
#添加LIBDLL_LIB宏
DEFINES +=LIBDLL_LIB
#指定dll的輸出路徑,只針對windows
DLLDESTDIR = ../../bin
#指定輸出路徑,編譯生成的全部文件都會往這個路徑輸入
DESTDIR = ../../lib