centos下手动编译Qt应用程序

发布时间 2023-09-04 16:22:52作者: litandy

centos7下手动编译Qt5的程序
需要Qt5的源代码编译出Qt5在linux下的可执行环境,怎么编译这个以后再说
我这里编译的版本是5.9.9

然后,将这个环境拷贝到centos某个目录下,我放到主目录下
设置环境变量
编写一个文本文件叫 qt-5.9.9-env ,内容是

export PATH=/home/fan/qt-5.9.9/bin:$PATH
export LD_LIBRARY_PATH=/home/fan/qt-5.9.9/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/fan/qt-5.9.9/plugins
export QMAKESPEC=/home/fan/qt-5.9.9/mkspecs/linux-g++-64
export QT_IM_MODULE=xim

 

这里的/home/fan/qt-5.9.9就是我编译的Qt环境

这里将Qt5.9.9的可执行文件目录,库目录,插件目录都导出
指定编译环境为linux-g++-64
输入模块xim
然后在命令行下执行
source qt-5.9.9-env

在windows下的Qt Creator里新建一个工程test,将工程里的 .cpp .h .pro拷贝到centos里的一个单独的文件夹下比如
/home/fan/testQt5
test.pro文件的内容如下

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
main.cpp \
mainwindow.cpp

HEADERS += \
mainwindow.h

FORMS += \
mainwindow.ui

 

然后shell切换到这个目录下,执行
qmake
会生成Makefile文件
make
就会出现 test 这个可执行文件
执行
./test
可能你那里会报错,我这里就报错了,找不到GL库,是因为库的路径不对
你去/usr/lib64下,会找到一个库文件叫libGL.so.1.7.0
建立软连接
ln -s /usr/lib64/libGL.so.1.7.0 /usr/lib64/libGL.so

然后切回/home/fan/testQt5目录执行
./test
就可以正常显示程序了