精华内容
下载资源
问答
  • Linux 下 静态编译Qt程序

    千次阅读 2012-07-30 11:33:06
    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统是不能使用的。...在Linux下如何静态编译Qt程序呢? 首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先
    
    

    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的。会提示缺少……库文件之类的错误。这就是动态编译的结果。

    但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需要采用静态编译了。

    在Linux下如何静态编译Qt程序呢?

    首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先是需要一个静态编译安装的Qt


    1、下载源安装程序,如 qt-x11-opensource-src-4.5.1.tar.gz

    2、解压到某一目录

    3、cd 进入解压后的目录,命令:

    ./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.1_static  
     ./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.1_static

    参数-static 指的是要采用静态编译Qt的方法

    参数-release指的是只编译release版本的库

    参数-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg 是更好确定Qt编译出的程序能在目前不知的系统下运行。

    参数-nomake demos -nomake examples 指的是不编译demos和examples

    参数-qt-sql-sqlite 如果没有这个参数,configure的时候,可能会提示sqlite 有问题而中止。

    参数 -prefix /usr/local/Trolltech/Qt-4.5.1_static 指明静态编译的Qt安装的目录,命名Qt-4.5.1_static是为了区别动态编译安装的Qt,因为如果没有这个参数,安装时会覆盖之前动态编译安装的Qt(如果有的话)。

    4、没问题后

    make

    5、make没问题后再 

    sudo make install

    6、增加(或改变)环境变量:

    在你home目录下你的的名字的目录中,在.profile文件中追加(或改变)如下环境变量:(为Qt设置一些特定的环境变量,这个很重要!.profile文件是隐藏的,可在你的名字目录下,按Ctrl+H显示所有文件查看到)

    QTDIR=/usr/local/Trolltech/Qt-4.5.1_static/     
    PATH=$QTDIR/bin:$PATH     
    MANPATH=$QTDIR/doc/man:$MANPATH     
    LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH     
    export QTDIR PATH MANPATH LD_LIBRARY_PATH    
    QTDIR=/usr/local/Trolltech/Qt-4.5.1_static/  
    PATH=$QTDIR/bin:$PATH  
    MANPATH=$QTDIR/doc/man:$MANPATH  
    LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  
    export QTDIR PATH MANPATH LD_LIBRARY_PATH   

    7、重启

    8、在终端测试一下qmake

    成功的话,下来用qmake编译出的Qt程序就是采用静态编译的。这时你会发现,静态编译出来的程序大小变大了相当多。

    静态编译与动态编译的区别

      动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。、

      静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

    展开全文
  • linux操作系统配置和编译qt程序

    千次阅读 2018-09-19 11:38:29
    在Linux操作系统,安装和配置QT坏境 ,是一个非常繁琐和复杂的过程。我Ubuntu16.04配置QT4环境一共花了半个月(我是一个完完全全的新手)。 1 先安装了一个qt编辑器2.4.1。 下载好之后直接终端运行,执行./ *...

    在Linux操作系统上,安装和配置QT坏境 ,是一个非常繁琐和复杂的过程。我Ubuntu16.04上配置QT4环境一共花了半个月(我是一个完完全全的新手)。
    1 先安装了一个qt编辑器2.4.1。

    这是下载的qt-creatorde bin文件。

    下载好之后直接在终端运行,执行./ ****.bin ,就可以了。会跳出一个安装界面和windows一样,这个就不多说了。安装完成后会在桌面出现一个

    这是安装好的Qt-creator的快捷方式。
    2 接下来开始编译X11版本和arm版本的qt库。为了保证以后到程序编译不会出错,两个版本的源码库尽量选择同一个版本,或者比较接近的版本。
    我下载的是
    在这里插入图片描述

    源码。arm版本的qt库,我用的是开发板公司直接提供的,为了和交叉编译器配套使用。
    3 由于arm版本的qt库不是我自己编译的,所以一直在没有在qt-creator中配置成功。所以我在生成arm版本的qt程序时,只能使用命令编译。
    编译方法为:

    1.进入源码目录,make clean
    2 第一次使用,删除rm -rf .pro类型的所有文件
    3. 编译
    3.1.查看编译器版本arm-linux-gcc -v,确保gcc版本与qmkae一致
    3.2先执行qmake,
    1) a 没有pro文件的时候,需要先执行:*/qmake -project
    在xx.pro中指定编译后的文件路径,当前目录的方法
    添加 DESTDIR == $$PWD
    b 再执行:**/bin/qmake
    2)有pro文件,直接执行: */bin/qmake
    3.3执行make即可

    这样就可以直接生成arm版本的镜像文件啦。

    展开全文
  • Linux/Ubuntu下 静态编译Qt程序

    千次阅读 2011-02-19 19:51:00
    一般情况下,我们用Qt编译出来的程序...在Linux下如何静态编译Qt程序呢?首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先是需要一个静态编译安装的Qt1、下载源安装程序,如 qt-x11-opensource-src-4.5.1.tar.gz2

     

    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的。会提示缺少……库文件之类的错误。这就是动态编译的结果。
    但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需要采用静态编译了。
    在Linux下如何静态编译Qt程序呢?
    首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先是需要一个静态编译安装的Qt

    1、下载源安装程序,如 qt-x11-opensource-src-4.5.1.tar.gz

    2、解压到某一目录

    3、cd 进入解压后的目录,命令:

     

     

    参数-static 指的是要采用静态编译Qt的方法

    参数-release指的是只编译release版本的库

    参数-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg 是更好确定Qt编译出的程序能在目前不知的系统下运行。

    参数-nomake demos -nomake examples 指的是不编译demos和examples

    参数-qt-sql-sqlite 如果没有这个参数,configure的时候,可能会提示sqlite 有问题而中止。

    参数 -prefix /usr/local/Trolltech/Qt-4.5.1_static 指明静态编译的Qt安装的目录,命名Qt-4.5.1_static是为了区别动态编译安装的Qt,因为如果没有这个参数,安装时会覆盖之前动态编译安装的Qt(如果有的话)。

     

     

     

    4、没问题后

    make

     

    5、make没问题后再  

    sudo make install

     

     

     

    6、增加(或改变)环境变量:

    在你home目录下你的的名字的目录中,在.profile文件中追加(或改变)如下环境变量:(为Qt设置一些特定的环境变量,这个很重要!.profile文件是隐藏的,可在你的名字目录下,按Ctrl+H显示所有文件查看到)

     

     

    7、重启

     

    8、在终端测试一下qmake

     

    成功的话,下来用qmake编译出的Qt程序就是采用静态编译的。这时你会发现,静态编译出来的程序大小变大了相当多。

     

     

     

    参考:

    http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Linux

     

    http://blog.163.com/ojb_123/blog/static/24177424200942115321994/

     

    http://blog.csdn.net/cuteqt/archive/2010/09/28/5912661.aspx

     

     

     

     

     


     

     

     

    静态编译与动态编译的区别

     

      动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。、

     

     

      静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

     

     

     

    展开全文
  • linux和windows中命令行编译qt程序步骤

    千次阅读 2018-01-09 19:18:57
    linux和windows中命令行编译qt程序步骤 linux平台命令行编译 1.检查一下qmake版本(可省略)  qmake -v   which qmake 2.具体步骤 以/home/michael/program_reference/hello.cpp...

    linux和windows中命令行编译qt程序步骤

    linux平台命令行编译

    1.检查一下qmake版本(可省略)

           qmake -v       

           which qmake

    2.具体步骤

    以/home/michael/program_reference/hello.cpp工程为例

    代码如下:

    1. #include <QApplication>
    2. #include <QLabel>
    3. #include <QtDebug>
    4. int main(int argc,char* argv[])
    5. {
    6. QApplication a(argc,argv);
    7. QLabel label("hello");
    8. label.show();
    9. qDebug()<<"hell mq";
    10. return a.exec();
    11. }
    编译过程如下: 

    2.1.在 hello.cpp所在目录下,运行命令:qmake  -project

            hello.cpp 同目录下有hello.pro文件被生成,它是与平台无关的工程文件。

            注:此处因为版本QT4和QT5的原因,需要修改hello.pro文件,具体修改内容如下:在.pro文件中加入以下代码:

    1. QT += widgets core gui

    2.2. 在 hello.cpp所在目录下,运行命令:qmake hello.pro

            同目录下有 Makefile文件被生成(Makefile是指导编译器编译源代码的配置文件,在其目录下输入make命令(nmakewin32,vc6环境)就可以完成编译)。

    2.3.在 hello.cpp所在目录下,运行命令:make

            同目录下有 hello,hello.o两个文件被编译生成。其中 hello就是在当前 Linux 系统下使用 Qt编译生成的可执行文件了。

        


    windows平台命令行编译

    注:此方法未经本人证实

    1、打开环境变量设置窗口,编辑 PATH 变量,添加如下内容:

        c:/Qt/2010.02.1/bin/;

        c:/Qt/2010.02.1/qt/bin/;

        c:/Qt/2010.02.1/mingw/bin/ 

    2、打开环境变量设置窗口,添加环境变量QTDIR:

        变量名:QTDIR

        变量值:C:/Qt/2010.02.1/qt 

    3、打开环境变量设置窗口,添加环境变量QMAKESPEC:

        变量名:QMAKESPEC

        变量值:win32-g++ 

    4、现在已经可以进行命令行模式的编译了,例如:

        a、建立一个空文件夹 hello,然后在其中建立一个空文件 hello.cpp,编辑并保存此文件。

        #include QApplication>
        #include QPushButton>
        int main(int argc,char* argv[])
        {
            QApplication app(argc,argv);
            QPushButton * bt = new QPushButton("quit");
            QObject::connect(bt,SIGNAL(clicked()),&app,SLOT(exit()));
            bt->show();
            return app.exec();
        }

        b、在hello目录下,命令行输入运行 qmake -project,生成 hello.pro

        c、在hello目录下,命令行输入运行 qmake hello.pro,生成了 makefile

        d、在hello目录下,命令行输入运行 mingw32-make,生成了 hello.exe(位于 Debug 目录下)

        e、进入 Debug 目录,执行 hello.exe

    转载自:https://www.cnblogs.com/xiahaimq/p/6269429.html

    展开全文
  • linux下使用命令模式去编译Qt程序

    千次阅读 2017-12-12 09:54:24
    一、新建Qt程序在linux下的目录新建一个Qt的cpp文件,如下vim hello.cpp#include #include #include <QtDebug> int main(int argc,char* argv[]) { QApplication a(argc,argv); QLabel label("hello");
  • Linux mint 下Qt编译程序出现skiping incompatible/usr/lib/... when searching for -lGL 是编译一个窗口程序出现此问题。 而用Qt新建Plain C++ Application项目则可以正常编译运行。![图片说明]...
  • linux编译qt5.6.0静态库——configure配置 linux编译qt5.6.0静态库 linux编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库:
  • 在Linux上使用Qt编译WebKit

    千次阅读 2008-01-10 15:50:00
    Webkit 是 Apple Safari 和 KDE Konqueror 浏览器的核心, 作为一套优秀的轻量级的浏览器排版引擎,已获得Qt的支持,新的Qt版本4.4中, 已经集成了WebKit引擎. 下面我们就来编译基于Qt的WebKit.Dependencies编译...
  • 一.qt程序用 linuxdeployqt打包发布步骤:  1.新建一文件夹,将qt编译生成的release下的xxx(可执行文件)拷到该文件夹下。  2.进入此文件夹,打开命令行模式,进入root权限。运行命令linuxdeployqt xxx -appimage ...
  • linux编译qt5.6.0

    千次阅读 2018-04-20 16:53:56
    转载: http://www.bubuko.com/infodetail-1513260.html首先下载源码包qt-everywhere-opensource-src-5.6.0.7z然后解压7z x -o/home/o/qt-src/qt-opensource-src-5.6.0 qt-everywhere-opensource-src-5.6.0.7z ...
  • 概述 linux上qt程序开发好后会遇到一个问题,就是如何将开发...1.编译qt程序 方法1: 使用qtcreator直接编译qt程序 方法2: 1)编译qt的静态库 2)使用qt的静态库静态编译qt程序 2.打包编译好的程序 1) 2) 3) ...
  • ubuntu 命令行编译qt程序

    千次阅读 2020-01-18 15:34:18
        关于uboot安装qt可以参考正点原子的《I.MX6U Qt交叉编译环境搭建V1.0》文档教程,本文的最终目的是实现ubuntu的命令终端中编译qt程序。 从uboot的终端输入命令:qmake -v,会显示下图的错误: 1.修改/...
  • 利用QtCreator编译X86的Qt程序,非常简单,直接点运行键就可以编译运行程序,这是因为QtCreator帮我们配置了编译工具(qmake和gcc),但是要编译ARM版本的Qt程序,就需要自己配置这些工具了。一、配置交叉编译工具链1...
  • 本文用于记载在Linux上安装QT此过程中遇到的各种问题,百度中有很多版本的解决方法,可是太多都模棱两可,方法也千篇一律,不能实际解决问题,本文仅用于打卡,为以后的此类问题找到一个可追溯的文档。...
  • 为了搭建这个环境,我把我的虚拟机都重装了,最后终于成功!!!!!! 人都不不好了。。好了 话不多说,切入正题。。 注意:搭建环境之前,先要安装tslib库,安装...我用的QT库的版本是:qt-everywhere-opensource-s
  • linuxQt程序编译运行

    2015-12-17 18:37:00
    Qt程序编译运行很简单,利用Qt提供的qmake工具可以很好的进行编译,命令行输入一下编译过程:qmake-project//声称项目文件(*.pro)qmake//生成Makefile文件make//生成可执行文件./helloworld//执行程序 =========...
  • linux编译Qt驱动libqsqlmysql.so

    千次阅读 2014-12-02 09:31:52
    这里我的Qt是安装默认的路径/opt下。使用的系统是OpenSuSE12.3 64位,Qt的版本是5.3.1。这里安装Qt时,必须勾选源码也安装。因为我们编译驱动时,是使用源码进行编译的。
  • 命令行编译Qt程序

    千次阅读 2016-12-08 10:33:04
    分为两大步,首先配置环境变量,其次编译程序。 1. 配置环境变量 首先要做的就是配置好qt和编译器的环境变量(本文用的windows平台下qt5.4.1_msvc2013)。这里有两条路,先使用qt的命令行,相当于已经配置好qt的...
  • 2、windows系统里编好的QT程序,经过交叉编译后能直接运行板子吗?还是板子需要弄个QT环境啥的?就是往里面安个相同版本的QT? 谢谢。。。。。   1、想板子运行用QT编好的程序,必须要PC的linux系统...
  • Linux下静态编译Qt

    千次阅读 2011-05-05 11:01:00
    Linux下静态编译Qt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,295
精华内容 13,318
关键字:

如何在linux上编译qt程序

linux 订阅