Linux上使用Qt Creator進行C/C++開發
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的記憶體使用:
相關文章
- Ubuntu上使用QT creator執行cuda程式UbuntuQT
- C++ Qt開發:ProgressBar進度條元件C++QT元件
- QT creator 中c和c++混編問題QTC++
- C++ Qt開發:使用順序容器類C++QT
- C++ Qt開發:使用關聯容器類C++QT
- C++ Qt開發:如何使用訊號與槽C++QT
- C++ Qt開發:Qt的安裝與配置C++QT
- Python如何嵌入C/C++進行開發PythonC++
- C++ Qt開發:LineEdit單行輸入元件C++QT元件
- QT creator使用筆記QT筆記
- C++ Qt開發:字串QString容器C++QT字串
- C++ Qt開發:PushButton按鈕元件C++QT元件
- C++ Qt開發:運用QThread多執行緒元件C++QTthread執行緒元件
- 如何在 Linux/Windows/MacOS 上使用 .NET 進行開發LinuxWindowsMac
- C++ Qt開發:SqlRelationalTable關聯表元件C++QTSQL元件
- C++ Qt開發:MdiArea多窗體元件C++QT元件
- C++ Qt開發:QItemDelegate 自定義代理元件C++QT元件
- C++ Qt開發:Charts繪圖元件概述C++QT繪圖元件
- C++ Qt開發:QSqlDatabase資料庫元件C++QTSQLLDADatabase資料庫元件
- C++ Qt開發:QProcess程序管理模組C++QT
- Linux C++ 開發1 - 搭建C++開發環境LinuxC++開發環境
- C++ Qt開發:DateTime日期時間元件C++QT元件
- C++ Qt開發:ToolBar與MenuBar選單元件C++QT元件
- C++ Qt 開發:ListWidget列表框元件C++QT元件
- C++ Qt開發:StandardItemModel資料模型元件C++QT模型元件
- C++ Qt開發:TableView與TreeView元件聯動C++QTView元件
- C++ Qt開發:CheckBox多選框元件C++QT元件
- C++ Qt開發:Slider滑塊條元件C++QTIDE元件
- C++ Qt開發:QFileSystemModel檔案管理元件C++QT元件
- C++ Qt開發:QNetworkInterface網路介面元件C++QT元件
- C++ Qt開發:QNetworkAccessManager網路介面元件C++QTSSM元件
- 【Qt 專欄】Qt Creator 的 git 配置 & 上傳到giteeQTGitee
- 嵌入式安卓開發使用LLDB進行斷點除錯C/C++程式碼安卓LLDB斷點除錯C++
- Linux C++程式進行效能分析工具gprof使用入門LinuxC++
- C++ Qt開發:TreeWidget 樹形選擇元件C++QT元件
- C++ Qt開發:StatusBar底部狀態列元件C++QT元件
- C++ Qt開發:Charts折線圖繫結事件C++QT事件
- C++ Qt開發:SqlTableModel對映元件應用C++QTSQL元件