利用qmake来为15.04及以上target创建Ubuntu应用项目

我们知道qmake是Qt最原生的跨平台编译工具。由于一些原因,在Ubuntu手机14.10上,广泛使用CMake以跨不同平台。事实上,在Qt Creator上,如果我们使用qmake,我们可以更加方便地管理我们的项目。比如:


-我们可以在项目中使用点击右鼠标键来添加或删除文件。在CMake项目中,我们只能进行添加的动作

-在新的模版中加入了使用“main()”的入口,这样可以很方便地让我们的项目编译成为binary。对那些希望把自己的代码进行保护的开发者来说,这无疑是个好的方案

-对文件的部署来说,qmake比CMake方便得多。开发者们可以研究一下项目管理文件.pro


注意:开发者也可以在14.10的Desktop上创建qmake项目,但是它的运行必须是在15.04的目标上(比如15.04的手机或15.04的模拟器上)。当然生产的click包可以除外(只要没有使用Qt 5.4中的新的features)。注:15.04系统使用的Qt 5.4,14.10使用的是Qt 5.3


1)创建一个最基本的QML qmake项目


打开SDK,并按照如下的步骤来创建项目:


   


  


我们可以和以前一样的方法来运行我们的项目 (使用热键 Ctrl + R):




删除文件:




在14.10的armhf Kit下运行qmake项目:




在15.04的手机中运行:



click文件包的内容如下:




在上面的包中,我们可以看到有“Main.qml”文件在其中。也就是说,任何人可以获取这个内容只有把click进行重新打开即可。


创建的源码在:https://github.com/liu-xiao-guo/qmaketest


2)创建一个QtQuick的应用


利用同样的方法,我们使用SDK按照一下的方式:


   

  


我们可以看出来在项目中有一个叫做“main.cpp”文件。

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickView>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQuickView view;
    view.setSource(QUrl(QStringLiteral("qrc:///Main.qml")));
    view.setResizeMode(QQuickView::SizeRootObjectToView);
    view.show();
    return app.exec();
}

这个文件用来启动我们的QML文件“Main.qml”。整个的QML文件被放置于一个叫做“qtquicktest.qrc”的资源文件中。这个文件将被变成最终binary的一部分,而不被其它文件看见。

最终的生产文件为qtquicktest。这个在“qtquicktest.pro”中被定义:

TEMPLATE = app
TARGET = qtquicktest

我们可以把最终的click包的内容展开如下:



在这里,我们可以看到一个叫做“./lib/arm-linux-gnueabihf/bin/qtquicktest”文件。这个就是我们的执行文件。我们看不见任何的QML文件。运行应用: