• PC端QT源码编译



    ####转载:http://blog.sina.com.cn/s/blog_c2b97b1d01016x1i.html 1、下载源码(前面已经提到了) 选择合适自己的源码。 先用“uname -a”看下系统信息: uname -a 2、解压缩文件 sudo tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz 我更改了下目录权限 sudo chmod -R 777 qt-everywhere-opensource-src-4.7.4 3、生成Makefile文件 进入目录 cd 目录 执行配置文件命令 ./configure 这时候出现下面情况: Which edition of Qt do you want to use ?

    Type 'c' if you want to use the Commercial Edition.
    Type 'o' if you want to use the Open Source Edition.
    问你要选择哪一个类型?第一个是商业版,第二个是自由版。
    我选择'o',即自由版本。然后输出以下内容:

    You are licensed to use this software under the terms of
    the Lesser GNU General Public License (LGPL) versions 2.1.
    You are also licensed to use this software under the terms of
    the GNU General Public License (GPL) versions 3.
    
    Type '3' to view the GNU General Public License version 3.
    Type 'L' to view the Lesser GNU General Public License version 2.1.
    Type 'yes' to accept this license offer.
    Type 'no' to decline this license offer.
    
    Do you accept the terms of either license?
    
    上面大概意思就是说:
    这是Linux/X11 Qt的开源版本,GNU通用公共许可证(LGPL),版本2.1和版本3,允许你使用该软件,
    

    按'3'来查看版本3,按'L'来查看版本2.1,按“yes”接受此许可提供;按“no”不接受此许可提供。
    我按了“yes”
    然后就是:
    Creating qmake. Please wait...
    ....................
    ....................

    等一会配置完成,输出如下:
    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into /usr/local/Trolltech/Qt-4.7.4
    
    To reconfigure, run 'make confclean' and 'configure'.
    

    4、编译安装
    sudo make
    这个“make”时间就有点长了,估计2个小时左右吧,看你人品怎么样了。
    这里就说下gmake 和 make的区别,gmake是GNU Make的缩写。 Linux系统环境下的make就是GNU Make,之所以有gmake,是因为在别的平台上,make一般被占用,GNU make只好叫gmake了。 比如在安装二进制文件进行编译时要使用make命令,但如果在Solaris或其他非GNU系统中运行,必须使用GNU make,而不是使用系统自带的make版本,这时要用gmake代替make进行编译.
    由上可知,在这里执行make与gmake是一样的。
    完成后执行make install.
    sudo make install
    由于默认安装至 /usr/local/Trolltech/Qt-4.7.4
    运行 /usr/local/Trolltech/Qt-4.8.1/bin/designer
    cd /usr/local/Trolltech/Qt-4.7.4/bin
    ./designer
    看见qt启动,也就是说qt安装好了。

    5、设置环境变量
    先修改登录用户环境变量
    vim ~/.profile
    在其最后添加以下信息

        export QTDIR=/usr/local/Trolltech/Qt-4.7.4
        export MANPATH=$QTDIR/manMANPATH
        export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
        PATH=$PATH:$QTDIR/binPATH
    

    如果要修改所有用户环境变量
    sudo vi /etc/profile
    在其最后添加以下信息

        export QTDIR=/usr/local/Trolltech/Qt-4.7.4
        export MANPATH=$QTDIR/manMANPATH
        export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
        PATH=$PATH:$QTDIR/binPATH
    

    执行source /etc/profile命令,之后进行测试
    重新开一个终端,输入命令:
    qmake -v
    错误:qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’: No such file or directory
    解决办法:由于qtchooser默认选择路径中没有指向qmake路径。注:qtchoooster在/usr/lib/x86_64-linux-gnu/qt-default/中。将/usr/lib/x86_64-linux-gnu/qt-default/qtchoooster的default.conf文件中的第一行改为:/home/zhuquan/Qt5.7.0/5.7/gcc_64/bin(是你的Trolltech中的bin目录路径)
    但default.conf文件是只读的,所以要改下权限。
    输出结果:
    QMake version 2.01a
    Using Qt version 4.7.4 in /usr/local/Trolltech/Qt-4.7.4/lib
    输入命令:
    which qmake
    输出结果:
    /usr/local/Trolltech/Qt-4.7.4//bin/qmake
    证明 Qt 环境变量已经被配置成功。
    6、QT下Hello.cpp示例测试
    我建了一个qt_test目录
    mkdir qt_test
    cd qt_test
    vi hello.cpp
    hello.cpp的内容如下:
    #include
    #include
    int main(int argc,char *argv[])
    {
    QApplication app(argc,argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();
    }
    在 hello.cpp 所在目录下,运行命令:
    qmake -project
    hello.cpp 同目录下有qt_work.pro文件被生成,它是与平台无关的工程文件。
     在 hello.cpp 所在目录下,运行命令:
    qmake qt_work.pro
    同目录下有 Makefile 文件被生成(Makefile是指导编译器编译源代码的配置文件)。
    然后运行命令:
    make
    同目录下有 qt_work、hello.o 两个文件被编译生成。其中qt_work 就是在当前 Linux 系统下使用 Qt 编译生成的可执行文件了。
    运行qt_work,
    ./qt_work
    “Hello Qt!“ 文本框弹出,OK!做到这一步,证明 Qt 已经完全可以在你的电脑上运作了.

  • 相关阅读:
    Codeforces 723d [暴力dfs]
    Codeforces 723e [图论][欧拉回路]
    Hihocoder 1035 [树形dp]
    Codeforces 721C [dp][拓扑排序]
    Codeforces 721D [贪心]
    info
    关于string操作
    Floyd求最小环 HDU1599
    Codeforces Round #572 (Div. 2) B Number Circle
    A. XXXXX
  • 原文地址:https://www.cnblogs.com/1996jiwei/p/6688620.html
Copyright © 2020-2023  润新知