zoukankan      html  css  js  c++  java
  • 通过命令行新建qt项目,并编译打包

    通过命令行新建qt项目,并编译打包

    ref: https://blog.csdn.net/weixin_42837024/article/details/81945656

    平台    :Ubuntu 18.04

    QT版本   :5.9.1 (open source)

    g++     : 7.3.0
    arm-gcc   :4.8.1

    新建项目

    • 新建文件夹,作为项目根目录
    • 编写main.cpp
      main.cpp
    #include<QApplication>
    #include<QWidget>
    int main(int argc,char ** argv)
    {
        QApplication app(argc,argv);
        QWidget* pWidget = new QWidget();
        pWidget->show();
        return app.exec();
    
    }
    

    进入到相应的 文件夹下 输入

    qmake -project
    

    会发现文件夹下生成了平台无关的项目文件一个XXX.pro文件(前面和文件夹名字一样)

    qmake -project
    

    img

    下一步输入

    qmake XXX.pro
    

    生成一些 makefile 文件 和 debug 和 release 文件夹(因为手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码

    编译

    如果使用的是开源版的Qt,用make;如果是商业版的Qt,用nmake

    • 所以我输入make,会 报错 不要着急

    img

    因为我们用到了QWidget 所以要在pro文件里加入 QT += widgets 然后继续重复上一步

    img

    • 重新make:make

    效果如图

    打包

    不同平台下的打包方式还不太一样。但是原理是类似的,都是将 应用文件依赖的有关库放到同级目录下

    Windows

    Linux

    1.将编译后生成的可执行程序(如:test)复制到一个空目录下

    2.使用ldd命令查看和导出需要的库

    在步骤1的目录下新建一个pack.sh文件,文件内容如下:

    #    pack.sh
    #    schips@dingtalk.com
    #    https://gitee.com/schips/
    #    Wed 26 Jun 2019 10:38:11 AM HKT
    ##
    #!/bin/sh
    
    #你需要发布的程序名称
    bin="test_project"
    
    # 输出路径
    des="./"
    deplist=$(ldd $bin | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')
    cp $deplist $des
    

    即可

    如果说我的文章对你有用,只不过是我站在巨人的肩膀上再继续努力罢了。
    若在页首无特别声明,本篇文章由 Schips 经过整理后发布。
    博客地址:https://www.cnblogs.com/schips/
  • 相关阅读:
    虚拟机网络配置常见问题总结
    Python
    Python
    Python
    Python
    Python
    Python
    MySQL
    MySQL
    MySQL
  • 原文地址:https://www.cnblogs.com/schips/p/creat_qt_project_in_shell_and_make_package.html
Copyright © 2011-2022 走看看