QT准备
- 在linux布署QT程序
- 问题
先看下QT如何布署到自己的服务.服务器版本是Aliyun Linux。
在linux布署QT程序
1. 需要在ubunt16.04下,编译QT程序,先安装
这个要想布署在linux服务器上,得用linux 下的QT来编译。这样才有运行的可能,所以ubuntu下,还得再装下QT.
之前关于qt安装的博客:嵌入式驱动开发之尝试tina_linux驱动相关vs与qt比较qt安装,不太适合,自己正是用的5.15,所以得需要重新安装个5.15.1的版本。==实测5.15安装在线安装不成功,安装过程中提示缺东西,最终还是从官网上下载15.4安装包qt-opensource-linux-x64-5.14.2.run,才可以的。==虽然都是.run文件,但5.14.run达到1.2G,而5.15才30多M,可见5.14是安装包,而5.15是在线安装。
- 还是得安装.run包,所谓的版本选择是在 select Components步。
- 到组件选择时,把与自己对应版本的QT5.15.1安装即可。全选上,这个与win下不太一样,保险期间,就全选上。需要2.42G的空间,还是比较大的。
- 安装完成后,还是老规则,运行一个demo程序看看,是否可以完成编译通过。
- 安装完成后,正常的话,先进
/home/guangod/Qt5.14.2/5.14.2/gcc_64/bin
这个路径 ,执行./designer
,即可启动QT,也可以按win --> A标志(软件中心) ,installed,找到Qt Creator启动QT.
2. 下载linuxdeployqt,这个与win下QT打包程序 windeployqt
在git,往下找到Installation直接下载
linuxdeployqt-continuous-x86_64.AppImage ,这个镜像文件。直接保存到自己的移动硬盘吧,这样以后安装方便些。以下分别执行命令:
mv linuxdeployqt-6-x86_64.AppImage linuxdeployqt ;//将名字改短,方便调用
chmod 777 linuxdeployqt
mv linuxdeqloyqt /usr/local/bin ;//这样就可以在其他目录访问
linuxdeployqt --version
3. 加载库路径设置到bash,这个已经写成了qt.env,直接source一下就可以
4. 生成release文件,生成前需要确认下数据库路径设置是否正常,因为是要放到公网上的
因为是要布到服务器上,而服务器是linux的,所以查看服务器的主机名
hostnamectl ;//查看主机名static hostname 就是主机名
sudo vim /etc/hosts ;//将ip4 ip6下名字都改成guangod
sudo hostnamectl set-hostname guangod
再重启下服务器,hostnamectl,可以看到主机名字已经改改了guangod
5. 生成依赖文件
在Home下新建一个QtSetup文件夹,将上步生成的/mnt/hgfs/ubuntuShare/Netdisk/build-TCPServer-Desktop_Qt_5_14_2_GCC_64bit-Release下的TCPServer,拷贝到此QtSetup目录下。
执行命令:
linuxdeployqt TCPServer -appimage //生成依赖
报错1:ldd outputLine:"libdbc.so.2 => not found
sudo apt-get install -y libodbc1
报错2:ERROR: ldd outputLine: "libpq.so.5 => not found"
sudo apt-get install postgresql
重要提示:
因为linuxdeployqt将在内部使用ldd命令,来确定从何处将库复制到包中。ldd命令本身只能查找隐式加载的so,故若程序中代码使用显式加载的so,它是找不