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


相关文章
|
6月前
|
Linux 开发工具 C语言
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
895 3
|
1月前
|
Windows
qt Error 20报错
这篇文章讨论了Qt开发中遇到的Error 20报错问题,并提供了将Windows服务中的NahimicService设置为手动运行或关闭的解决方案。
96 0
qt Error 20报错
|
5月前
|
Linux 网络安全
杨老师课堂之关于阿里云Centos7 如何设置权限的解决方案
杨老师课堂之关于阿里云Centos7 如何设置权限的解决方案
67 0
|
1月前
|
缓存 Linux 编译器
【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
通过上述步骤,您应该能够在CentOS环境中成功安装并使用log4cplus日志组件。面对任何安装或使用过程中出现的问题,仔细检查错误信息,对照提供的解决方案进行调整,通常都能找到合适的解决之道。log4cplus的强大功能将为您的项目提供灵活、高效的日志管理方案,助力软件开发与维护。
52 0
|
5月前
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:
200 1
|
5月前
|
Windows
qt中编译错误:error: C2001: 常量中有换行符的解决办法
qt中编译错误:error: C2001: 常量中有换行符的解决办法
|
6月前
|
关系型数据库 MySQL Linux
centos7 编译报错 cannot find -lmysqlclient
centos7 编译报错 cannot find -lmysqlclient
|
6月前
|
网络协议 Linux
centos7部分桥接网络ping不通解决方案
centos7部分桥接网络ping不通解决方案
centos8 Failed to download metadata for repo ‘base‘: Cannot download repomd.xml
centos8 Failed to download metadata for repo ‘base‘: Cannot download repomd.xml
456 1
|
12月前
|
Linux
Centos8安装yum源时候出现的异常问题及解决方案(保好使)
Centos8安装yum源时候出现的异常问题及解决方案(保好使)

热门文章

最新文章

下一篇
无影云桌面