文档章节

Linux上使用Qt Creator进行C/C++开发

eechen
 eechen
发布于 2013/10/06 12:57
字数 1299
阅读 53493
收藏 107

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的内存使用:

© 著作权归作者所有

eechen

eechen

粉丝 1016
博文 107
码字总数 55962
作品 1
深圳
私信 提问
加载中

评论(24)

itfanr
itfanr
差点忘了,连续按两次Alt+V快捷键即可进入VIM编辑模式(FakeVim),这应该很能吸引vim用户
孤火369
孤火369
这个不错哦 我一般都是在windows上写好,去linux上调。
Lzz_Love
Lzz_Love
用QT来PHP41
c
caonimeimei
支持楼主,总结的很好 推荐一个整合实例:http://blog.sina.com.cn/s/blog_150df94af0102vngn.html
pp__qq
pp__qq

引用来自“eechen”的评论

@王小伟0303 最新版的Qt Creator使用了最新版的Qt库,而最新版的Qt5不兼容Ubuntu源里的fcitx-frontend-qt5,所以,个人还是建议用基于Qt 4的2.8.1版本的Qt Creator吧,没有Qt5带来的那些问题。
是的,Qtcreator2.8.1,最后一个使用QT4库的版本就没有这个问题.
eechen
eechen 博主
@王小伟0303 最新版的Qt Creator使用了最新版的Qt库,而最新版的Qt5不兼容Ubuntu源里的fcitx-frontend-qt5,所以,个人还是建议用基于Qt 4的2.8.1版本的Qt Creator吧,没有Qt5带来的那些问题。
pp__qq
pp__qq
您好,再咨询您一个问题.我发现我的 Qtcreator-3.5.0 无法使用 fcitx 输入中文.在Qtcreator的编辑页面,将鼠标移到fcitx图标上,显示的是"无输入窗口".
一些系统(kubuntu-15.04)信息如下:
$ ls -al /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/
总用量 204
drwxr-xr-x 2 root root 4096 9月 24 10:30 .
drwxr-xr-x 29 root root 12288 9月 22 18:09 ..
-rwxr-xr-x 1 root root 44088 5月 28 03:04 libcomposeplatforminputcontextplugin.so
-rwxr-xr-x 1 root root 146840 3月 27 06:43 libfcitxplatforminputcontextplugin.so
wangwei@~
$ ls -al ~/qt/qtcreator/3.5.0/bin/plugins/platforminputcontexts/
总用量 424
drwxrwxr-x 2 wangwei wangwei 4096 9月 24 10:29 .
drwxrwxr-x 11 wangwei wangwei 4096 9月 24 09:27 ..
-rwxr-xr-x 1 wangwei wangwei 275200 9月 24 10:29 libcomposeplatforminputcontextplugin.so
-rwxr-xr-x 1 wangwei wangwei 146840 9月 23 14:51 libfcitxplatforminputcontextplugin.so
wangwei@~
$ uname -a
Linux wangwei-kubuntu 3.19.0-30-generic #33-Ubuntu SMP Mon Sep 21 20:58:04 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
谢谢13
pp__qq
pp__qq
您好,我已经知道如何做了,参考Manual,Setting Up a Generic Project就行。
无论如何,谢谢。
pp__qq
pp__qq
您好,想问一下,如何在 QtCreator 中使用 make 来进行构建.
我用‘文件’->'打开文件'只能打开一个文件,就像普通的编辑器一样。
谢谢了
百世经纶之傲笑红尘
百世经纶之傲笑红尘
我正在慢慢看
用 Qt Creator 开发非 Qt 的 C/C++ 程序

在Windows还是习惯用VS2005但是现在到了Linux下,开发起来C/C++程序就没有那么得心应手的IDE了。虽然很多人推荐E开头那个主要作为Java开发的IDE,不过安上插件后感觉不大好,一个是那个智能完...

鉴客
2011/04/08
10.9K
8
《Qt 5.9 C++开发指南》第1章 认识Qt

第1章 认识Qt 1.1 Qt简介 简要介绍了Qt的发展历史和特点。Qt是一套跨平台的应用程序开发类库,支持Windows,Linux,macOS等桌面平台,还支持移动和嵌入式操作系统,如iOS,Embedded Linux,...

hongandyi
2018/05/11
0
0
Qt Creator 2.1 RC 版发布

Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32位及64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Crea...

鉴客
2010/11/27
1K
2
Qt Creator 3.3.1/Qt 5.4.1 发布

Qt Creator 3.3.1 主要是修复bug,这里是更新日志: https://qt.gitorious.org/qt-creator/qt-creator/source/3.3:dist/changes-3.3.1 Qt Creator 3.3.1 是随 Qt 5.4.1 发布的,Qt 5.4.1 也主......

eechen
2015/02/25
7.7K
4
从 相对路径 说开来(从C++到Qt)

在Qt论坛经常看到网友抱怨: QPixmap("dbzhang800.png") 加载图片不成功 QFile("dbzhang800.txt") 打开文件失败 ... 遇到这种问题,我一般回答:请注意区分进程的"工作目录 "与程序所在的目录......

晨曦之光
2012/05/08
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Commons-lang3提供的StopWatch执行时间监视器

Commons-lang3提供的StopWatch执行时间监视器, spring也提供了同样功能的工具 前言 我们如果要统计一段代码的执行时间:我们的办法是 public static void main(String[] args) {      ...

独钓渔
19分钟前
0
0
Kernel 块设备驱动框架

1,总体架构: 块设备驱动框架是Linux设备最重要的框架之一,涉及内核的vfs,设备驱动模型等模块,是内核中异常复杂的一个框架。我们先看一下块设备设计的主要框架结构,先从总体上对块设备有...

yepanl
48分钟前
2
0
iOS开发之EventKit框架的应用

iOS开发之EventKit框架的应用 一、关于系统日历和提醒事宜 iOS系统自带的Calendar应用非常强大,用户可以在其中添加日程事件,并且其提供了接口供其他应用进行调用,可以向日历中进行事件的读...

珲少
51分钟前
2
0
jni接口NewStringUTF崩溃

转载 原文 https://blog.csdn.net/churuxu/article/details/49999575 ndk开发中,将c/c++的UTF8编码的字符串转换成java字符串,使用了NewStringUTF接口。 当字符串中包含emoji字符时,在有些...

shzwork
昨天
3
0
北斗三号IGSO-2卫星发射成功!

6月25日,中国航天科技集团官方公众号宣布,北斗三号IGSO-2卫星发射成功! 航天科技集团表示,6月25日2点09分,我国在西昌卫星发射中心用长征三号乙运载火箭成功将北斗三号第2颗倾斜地球同步...

linuxCool
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部