CentOS/Deepin遇到Qt系列问题的解决方案(例如error: cannot find -lGL和搜狗输入法无效等)

本文涉及的产品
云防火墙,500元 1000GB
简介: CentOS/Deepin遇到Qt系列问题的解决方案(例如error: cannot find -lGL和搜狗输入法无效等)

一、CentOS系统


0、依赖环境的安装


sudo yum -y update


yum install libstdc++-devel -y


yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel


yum -y install gcc gcc-c++ autoconf automake

yum -y install zlib zlib-devel openssl openssl-devel pcre-devel


1、安装Qt,进入CentOS系统的终端,依次执行以下命令

chmod +x qt-opensource-linux-x64-5.5.1.run

./qt-opensource-linux-x64-5.5.1.run



2、笔者CentOS 7 64位,安装完成Qt5.5.1。随意新建一个Qt Widgets Application。


结果遇到Qt编译问题,提示信息如下:


error: cannot find -lGL


error: collect2: error: ld returned 1 exit status


原因是系统缺乏相应的OpenGL库文件造成,解决方案如下:


联网的前提下,进入CentOS系统的终端,依次执行以下命令,即可解决。注意,当提示Is this ok[y/d/N]:时,请输入"y"。


su root


yum install mesa-libGL-devel mesa-libGLU-devel


yum install freeglut-devel



二、Deepin系统


0、依赖环境的安装


g++ --version

sudo apt-get install gcc g++

sudo apt-get install gdb


sudo apt-get install cmake


sudo apt-get install libqt4-dev

sudo apt-get install libgl1-mesa-dev


sudo apt-get update


sudo apt-get install -y make build-essential libssl-dev zlib1g-dev


sudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm


sudo apt-get install -y libncurses5-dev libncursesw5-dev xz-utils tk-dev



1、部分终端命令的说明


sudo apt-get install gcc g++         //安装linux下编程的编译器

sudo apt-get install gdb                //安装调试器


sudo apt-get install cmake           //安装cmake

sudo apt-get install libqt4-dev libgl1-mesa-dev     //不然编译时会出现错误error: cannot find -lGL

sudo apt-get install build-essential //这是一个编译工具,它可以使得我们的程序知道头文件和库函数放在哪个位置


sudo apt-get update                 //获取系统更新

sudo apt-get dist-upgrade -y   //更新系统

sudo apt-get autoclean            //清理更新缓存


cat /etc/os-release                   //查看deepin的版本


cat /etc/debian_version           //deepin linux系统基于debian系统,查看debian的版本


参考文献  https://www.cnblogs.com/hanlulu1998/p/12003845.html



2.防火墙


sudo apt-get install ufw //安装防火墙


查看防火墙状态:sudo ufw status

提示:Status: active 说明已经成功开启了

提示:Status: inactive 说明已经关闭成功

打开防火墙:sudo ufw enable

关闭防火墙:sudo ufw disable



3.DTK:Deepin Tool Kit


sudo apt install libpcap-dev libncurses5-dev libprocps-dev libxtst-dev libxcb-util0-dev


sudo apt-get install libdtkwidget-dev libdtkcore-dev dh-make


sudo apt-get install libdframeworkdbus-dev libqrencode-dev libzbar-dev libdtkwm-dev libdtkcore-bin libqtshadowsocks-dev fakeroot


https://github.com/linuxdeepin/deepin-tool-kit/


https://github.com/linuxdeepin/dtkwidget


https://github.com/linuxdeepin/dtkcore


https://github.com/linuxdeepin/dtkwm


dtkwidget是控件库,包括所有系统和应用的控件。dtkcore是一些非控件的工具库函数。


参考文献


https://www.jianshu.com/p/ef875f6eb2b6


https://github.com/pp710680429/DtkDemo


https://github.com/linuxdeepin/deepin-system-monitor



三、Deepin系统下Qt5无法使用搜狗输入法输入中文的解决方法


1、先安装最新版的搜狗输入法fcitx-frontend-qt5


sudo apt-get --reinstall install fcitx-libs-qt5


默认的搜狗输入法安装之后,会有fcitx-qt5插件,路径是:


/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so


笔者的Qt版本是v5.12.5,搜狗输入法之所以用不了,是因为默认的fcitx-qt5插件版本较旧,与我使用的Qt Creator版本不匹配,导致无法加载。


2、去网站https://github.com/buqg/fcitx-qt5-下载插件文件 libfcitxplatforminputcontextplugin.so


把插件文件分别拷贝入以下文件夹:

/home/firecat/Qt5.12.5/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts

/home/firecat/Qt5.12.5/5.12.5/gcc_64/plugins/platforminputcontexts


3、重启Qt Creator。大功告成!可以输入中文了!


4、附录


已编译生成好的插件文件:


https://github.com/buqg/fcitx-qt5-


插件文件源码:

https://github.com/fcitx/fcitx-qt5


5、参考文献


https://www.cnblogs.com/brifuture/p/9634219.html


https://blog.csdn.net/lql0716/article/details/54973160



四、Deepin安装Python


0、安装python前先确认openssl的版本


openssl version -a


如果openssl版本太低,Python编译会报错:


load avg: 0.63 [307/416] test_socket #最后会卡在这里


1、安装openssl


去openssl官网下载新版本 https://www.openssl.org/source/


1.1. 先卸载旧版本


sudo apt-get purge openssl #卸载 这招太损了,千万别用。笔者尝试之后,发现很多有依赖openssl的软件(比如谷歌浏览器)都一起卸载了。囧。。。


sudo rm -rf /etc/ssl #删除配置文件


1.2. 解压文件:tar -xzf openssl-1.1.1d.tar.gz

1.3. 进入操作目录:cd openssl-1.1.1d

1.4. 配置:


sudo mkdir /usr/local/openssl


sudo ./config --prefix=/usr/local --openssldir=/usr/local/openssl  enable-shared


sudo ./config -t

1.5. 安装


sudo make && make install

1.6. 配置环境变量sudo dedit /etc/profile

将“/usr/local/openssl/bin”添加到PATH


export PATH=$PATH:/usr/local/openssl/bin

1.7. 使更改生效:source /etc/profile

1.8. 注销登陆

1.9. 一系列测试


openssl version


which openssl


2、开始安装python


https://www.python.org/ftp/python/


tar xvf Python-3.7.6.tgz


cd Python-3.7.6


./configure --enable-optimizations #红色选项是必须的


make -j8 && sudo make install


sudo make clean


相关文章
|
2月前
|
编译器
(9)Qt中信号与槽重载的解决方案
本文介绍了在Qt中处理信号与槽重载问题的三种解决方案:使用函数指针、Qt提供的QOverload类和Qt4的宏方式。
166 3
|
7月前
|
XML 自然语言处理 数据格式
Qt国际化翻译解决方案
Qt国际化翻译解决方案
169 0
|
7月前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
222 0
|
关系型数据库 MySQL Linux
【Linux环境】centos安装mysql5.7.26报 ./mysqld: error while loading shared libraries: libaio.so.1: cannot op
【Linux环境】centos安装mysql5.7.26报 ./mysqld: error while loading shared libraries: libaio.so.1: cannot op
311 0
|
2月前
|
Windows
qt Error 20报错
这篇文章讨论了Qt开发中遇到的Error 20报错问题,并提供了将Windows服务中的NahimicService设置为手动运行或关闭的解决方案。
140 0
qt Error 20报错
|
3月前
|
编译器 Windows
plugin cannot be loaded for module “QtQuick“ && Could not load the Qt platform plugin “windows“
本文讨论了在Qt应用程序中遇到的平台插件加载问题,包括具体的错误信息、解决方案和参考链接。问题表现为无法加载“QtQuick”模块的插件,并且无法找到“windows”平台插件。解决方案是修改环境变量`Qt5_DIR`以使用正确的Qt版本和编译器环境。
102 1
|
7月前
|
算法 Ubuntu Linux
Linux Qt cannot find -lGL错误完美解决方案(亲测有效)
Linux Qt cannot find -lGL错误完美解决方案(亲测有效)
629 1
|
6月前
Centos8 Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist:
Centos8 Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist:
228 1
|
6月前
|
Windows
qt中编译错误:error: C2001: 常量中有换行符的解决办法
qt中编译错误:error: C2001: 常量中有换行符的解决办法
|
7月前
|
关系型数据库 MySQL Linux
centos7 编译报错 cannot find -lmysqlclient
centos7 编译报错 cannot find -lmysqlclient

热门文章

最新文章