Linux上使用Qt Creator進行C/C++開發

2puT發表於2016-07-22

Qt Creator支援中文,啟動速度比Eclipse、Netbeans更快,介面也更美觀,跟輸入法Fcitx協作良好(游標跟隨)。

你既可以把Qt Creator當程式碼編輯器作為vim輔助,好處在於Qt Creator能夠自動parse專案,形成友好快速的智慧提示,而且你也同樣可以使用Qt Creator裡面的gdb前端(上圖)和valgrind前端(高清大圖) 對專案進行除錯和記憶體分析,不過Makefile就要自己寫或者用autotools生成了,這對於使用vim進行程式設計的同學來說,應該是輕車熟路的。差點忘了,連續按兩次Alt+V快捷鍵即可進入VIM編輯模式(FakeVim),這應該很能吸引vim使用者。當然,Qt Creator預設支援主流版本控制系統git/hg/svn等。

你也可以把Qt Creator當作IDE,這時可以作為Eclipse CDT、 Netbeans for C++這些重量級IDE的一個輕量替代品。你可以直接在Qt Creator的嚮導裡新建一個非Qt使用CMake自動構建的專案,這意味著你不用自己寫Makefile,你只要在Qt Creator裡“執行CMake”就能自動生成。當然,你也可以匯入一個make構建的專案到Qt Creator裡編譯除錯,比如Nginx。

1、安裝Qt Creator和基礎構建環境(以Ubuntu為例):

安裝基礎系統構建工具包:

sudo apt-get -y install build-essential gdb valgrind cmake

下載最新版二進位制Qt Creator(建議使用基於Qt4構建的2.8系列的Qt Creator,能更好地相容Fcitx輸入法):

http://mirrors.ustc.edu.cn/qtproject/official_releases/qtcreator/2.8/2.8.1/

不進行GUI程式設計,不需要安裝Qt SDK,也就沒有qmake和相關Qt開發庫,只用下載那個60M的Qt Creator就好了,比如我下的是:

qt-creator-linux-x86_64-opensource-2.8.1.run

下載後給予執行許可權,執行選擇安裝目錄安裝即可,可以安裝在自己的家目錄。

Windows上建議下載自帶MinGW的Qt(300多MB),不過不進行Qt圖形化開發,安裝時只安裝Qt Creator和MinGW即可:
http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/4.8/4.8.7/qt-opensource-windows-x86-mingw482-4.8.7.exe

專案配置預設存放位置~/.config/QtProject

可以通過引數-settingspath自定義配置檔案存放位置,比如:

/home/eechen/qtcreator-2.8.1/bin/qtcreator -settingspath /home/eechen/qtcreator-2.8.1

注意:如果你用的是基於Qt5構建的Qt Creator 3系列,其預設整合了iBus輸入法外掛,而對於Fcitx外掛,則需要手動安裝包fcitx-frontend-qt5, 然後複製libfcitxplatforminputcontextplugin.so到Qt Creator 3的 bin/plugins/platforminputcontexts 目錄,比如: sudo apt-get install fcitx-frontend-qt5
ln -s /usr/lib/`arch`-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /png/dev/qtcreator-3.2.1/bin/plugins/platforminputcontexts/
重啟QtCreator,就可以正常使用Fcitx輸入法了.

如果仍然不能呼叫Fcitx,請看這篇文章:
http://my.oschina.net/lieefu/blog/505363

2、把自動完成快捷鍵"Ctrl+空格"改為"Alt+/"或者"Shift+Return"(Return表示Enter鍵)

工具-選項-環境-鍵盤: 鍵盤快捷鍵輸入"Ctrl+空格",在鍵位順序中點選x刪除原來的"Ctrl+空格",輸入新的"Alt+/",確定退出.

3、在Qt Creator中使用make構建,執行,除錯通用C/C++專案

檔案-新建檔案或專案-匯入專案-匯入現有專案

這樣匯入的專案用的是make構建,需要自己寫好Makefile檔案後才能構建,支援自動完成,支援除錯和記憶體分析.

4、在Qt Creator中使用cmake構建,執行,除錯通用C/C++專案

檔案-新建檔案或專案-非Qt專案:新建一個CMake專案

在"執行CMake"這一步的引數中填入-DCMAKE_BUILD_TYPE=Debug

這樣才可以在Qt Creator中除錯程式,-DCMAKE_BUILD_TYPE的值可以設為Debug或者Release或者RelWithDebInfo.

cmake可以自動生成Makefile方便用make構建專案,但使用cmake構建專案也必須要會編寫CMakeLists.txt檔案.

Qt Creator支援使用qmake,make,cmake構建專案,但不能直接往cmake專案裡新增檔案,Qt Creator對CMake的支援還有待改進.

臨時的做法是,切換到檔案管理器來新增檔案,然後右擊專案"執行CMake"使parsing(語法解析)生效,並載入檔案到在專案.

5、Qt Creator會自動識別系統中安裝的gcc、g++、gdb、make、cmake、valgrind,也可以自己到選單"工具"->"選項"裡進行一些自定義配置.

配置vim外部編輯器:

工具->選項->環境->外部工具->使用vi進行編輯

把xterm改為konsole或者gnome-terminal

引數改為-e vim "%{CurrentDocument:FilePath}"

配置終端:

工具->選項->環境->概要

KDE環境預設為/usr/bin/konsole -e

如果要用gnome-terminal,則設為/usr/bin/gnome-terminal -x

設定在終端執行程式:

專案(側邊欄)-執行-勾選"在終端中執行"

除錯(gdb)時出現"ptrace operation not permitted"問題解決辦法:

臨時設定: sudo sysctl kernel.yama.ptrace_scope=0

永久設定: 編輯/etc/sysctl.d/10-ptrace.conf改為kernel.yama.ptrace_scope = 0

系統預設設為1的目的是為了安全,防止使用者程式(比如這裡的gdb)訪問其他程式(比如這裡的konsole,gnome-terminal)記憶體的資料.

PS:附一張圖,在Qt Creator中使用valgrind分析Nginx的記憶體使用:

相關文章