使用qtcreator和qgis启动和运行¶

qtcreator是qt库的开发者开发的一个新的IDE。使用QtC造饰器,您可以构建任何C++项目,但是对于基于Qt(4)的应用程序(包括移动应用程序)的人们来说,它确实是优化的。下面我描述的所有内容都假设您正在运行Ubuntu 11.04“natty”。

安装qtcreator

这部分很简单:

sudo apt-get install qtcreator qtcreator-doc

安装后,您应该在GNOME菜单中找到它。

设置项目

我假设您已经有了一个包含源代码的本地QGIS克隆,并且已经安装了所有需要的构建依赖项等。 git accessdependency installation .

在我的系统中,我已经将代码签出到 $HOME/dev/cpp/QGIS 本文的其余部分假设您应该为您的本地系统更新这些路径。

启动qtcreator do时:

File -> Open File or Project

然后使用结果文件选择对话框浏览并打开此文件:

$HOME/dev/cpp/QGIS/CMakeLists.txt
../../_images/image01.jpeg

接下来将提示您输入生成位置。我创建了一个特定的构建目录,以便qtcreator在下面工作:

$HOME/dev/cpp/QGIS/build-master-qtcreator

如果您有足够的磁盘空间,最好为不同的分支创建单独的构建目录。

../../_images/image02.jpeg

接下来,将询问您是否有任何CMAKE构建选项要传递给CMAKE。我们将通过添加此选项告诉cmake我们需要调试生成:

-DCMAKE_BUILD_TYPE=Debug
../../_images/image03.jpeg

这就是它的基础。完成向导后,qtcreator将开始扫描源目录树以获得自动完成支持,并在后台执行一些其他内务管理工作。不过,在开始建造之前,我们想做些调整。

设置构建环境

单击qtcreator窗口左侧的“项目”图标。

../../_images/image04.jpeg

选择“生成设置”选项卡(默认情况下通常处于活动状态)。

../../_images/image05.jpeg

现在我们要添加一个自定义过程步骤。为什么?因为QGIS当前只能从安装目录而不是其构建目录运行,所以我们需要确保在构建时安装它。在“构建步骤”下,单击“添加构建步骤”组合按钮并选择“自定义过程步骤”。

../../_images/image06.jpeg

现在我们设置以下详细信息:

启用自定义进程步骤:【是】

命令:制作

Working directory: $HOME/dev/cpp/QGIS/build-master-qtcreator

命令参数:安装

../../_images/image07.jpeg

你几乎准备好了。只需注意一点:qtcreator需要对安装前缀具有写权限。默认情况下(我在这里使用的)qgis将安装到 /usr/local/ . 出于我在开发机器上的目的,我只授予自己对/usr/local目录的写权限。

要开始构建,请单击窗口左下角的大锤子图标。

../../_images/image08.jpeg

设置跑步环境

如前所述,我们不能直接从构建中运行qgis,因此我们需要创建一个自定义的运行目标来告诉qtcreator从install dir运行qgis(在我的情况下 /usr/local/ )为此,请返回“项目配置”屏幕。

../../_images/image04.jpeg

现在选择“运行设置”选项卡

../../_images/image09.jpeg

我们需要将默认的运行设置从使用“qgis”运行配置更新为使用自定义配置。

../../_images/image10.jpeg

为此,单击“运行配置”组合框旁边的“添加v”组合按钮,然后从列表顶部选择“自定义可执行文件”。

../../_images/image11.jpeg

现在在属性区域中设置以下详细信息:

Executable: /usr/local/bin/qgis

争论:

工作目录:$home

磨合终端:【否】

调试器:C++ [是]

QML[NO]

然后单击“重命名”按钮,为自定义可执行文件指定一个有意义的名称,例如“installed qgis”

../../_images/image12.jpeg

运行和调试

现在您已经准备好运行和调试QGIS了。要设置一个断点,只需打开一个源文件并单击左列。

../../_images/image14.jpeg

现在,通过单击窗口左下角有一个bug的图标,在调试器下启动qgis。

../../_images/image13.jpeg