蛋皮のhome

从此唯行乐,闲愁奈我何。

Linux下通过命令行编译QT程序

最近在尝试通过CentOS系统编译运行QT,虽然是通过安装了xwindow才得以安装QT,但是作为一个我以后可以往云服务器的编译平台,我也尽量用命令行编译,以及导出程序。这样更方便我把程序丢到云服务器上去。

不过说句老实话,自从习惯用了命令行操作,鼠标什么的真是太不方便了2333。

照例先在网上搜一下有什么总结的,也照例别人的就是别人的,自己在按照别人的方法永远都会遇到问题。

QT之前就安装了,但在使用qmake指令的时候,依旧遇到了问题:

bash: qmake: command not found

就是找不到qmake指令呗,一般来说肯定有Qt安装了qmake指令肯定也有,就是没有配置好而已,本来想直接通过添加PATH路径解决的,但后来为了保险一点,还是上网查了下添加qmake指令。具体方法如下:

首先确认自己的qt的安装路径。比如我的是在/opt/Qt5.9.1下,然后在qt5.9.1下还分有多个版本,我的是在/opt/Qt5.9.1/5.9.1/gcc_64/路径下,要保证路径下有bin之类的文件夹才是正确路径,因为qmake之类的指令只会在bin文件夹下。然后编辑/etc/profile文件:

$ sudo vim /etc/profile

在最后面添加以下几行指令:

export QTDIR=/opt/Qt5.9.1/5.9.1/gcc_64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
export PATH=$PATH:$QTDIR/bin

添加指令的时候注意QTDIR的路径是否正确,其他没有字打错就应该没有什么问题了,然后注意等号两边不能有空格,不要问我为什么知道的つ﹏⊂。

配置成功,照例以失败的心态去试一下qmake -v,果然还是之前那个错误,未找到指令。作为一个比较懒的人,虽然知道文件设置完需要启动一下配置才可以生效,但又不知道怎么启动,也懒得搜了,就直接重启一下CentOS就可以完成配置了。

重启CentOS后重复输入qmake -v果然生效了。接下来就开始编译。

编译的程序是我最近在做的一个TCP的server端的程序,所以才想着配置到云服务器上。但我目前配置的这个QT编译是在虚拟机上配置的,打算编译好并导出之后再复制到云服务器上便可以直接运行。这个程序后面也会开源。扯远了,回到qt命令行编译。

QT编译不像gcc指令编译那样有点点麻烦,但编译之前也要建一个.pro文件,主要的格式便是:

QT += xxx
QT -= xxx
SOURCES += main.cpp \
xxx.cpp
HEADERS += \
xxx.h

QT+=和QT-=为添加和减少的功能包,这个如果用QT编译器新建的话都会自动生成,我的程序只是在终端执行,并且是在Ubuntu下开发的(用Windows开发也没有问题,前提是没有调用其他第三方链接库,如果调用了,需要更改pro文件里的第三方链接库的路径),所以前面的pro格式并没有太过研究。我的pro文件开头为:

QT += core network
QT -= gui

至于后面的.cpp和.h文件就是你自己添加的程序文件,这点不需要太过说明什么。

添加好之后,便可以直接通过终端命令行生成编译配置文件:

qmake xxx.pro

配置好之后会生成一个Makefile文件为编译源码的配置,之后只需要在终端输入make便可以完成编译。会生成一些.o中间文件,然后你还会看到和pro文件同名的一个可执行文件,那个便是这个程序最后的编译文件了。特地看了下文件的权限为775,所以无需更改权限,直接运行即可。

参考网址:https://blog.csdn.net/imxiangzi/article/details/7454276

发表评论

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>