linux下配置Qt5 开发环境

来源:互联网 发布:软件授权使用协议书 编辑:程序博客网 时间:2024/05/17 19:58

第一步很简单,就是从官网下载安装包或者下载源码自己编译,直接下载.run安装包进行安装。从官网http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x86-5.5.1.run下载安装包。下载之后赋与.run可执行权限。

第二步,双击安装。

第三步,要重点强调一下。官网上也有重点说明。

The Qt installers for Linux assume that a C++ compiler, debugger, make, and other development tools are provided by the host operating system. In addition, building graphical Qt applications requires OpenGL libraries and headers installed. Most Linux distributions do not install all of these by default, but setting up a development environment is still straightforward.

翻译如下:

linux下的Qt安装程序自身不带有C++编译器、调试器、make程序等开发工具。安装者要确认自己的linux系统中已经存在了这些开发工具。同时,对于用Qt开发图形界面,Qt会用到openGL的相关库文件和头文件。虽然绝大多数的linux发行版中都没有预置安装这些开发工具,但是要安装它们,也是非常简单的。用一行安装命令即可安装完毕。

Debian/Ubuntu (apt-get)

sudo apt-get install build-essential libgl1-mesa-dev

Fedora/RHEL/CentOS (yum)
sudo yum groupinstall "C Development Tools and Libraries"
sudo yum install mesa-libGL-devel

openSUSE (zypper)
sudo zypper install -t pattern devel_basis
 

还差最后一步。执行完上述命令之后,我们先来编译一个图形界面程序来看看。


报错了。cannot find -lxxx意思是编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so。

一般出现这种错误有以下几种原因:
1.系统缺乏对应的库文件;
2.版本不对应;
3.库文件的链接错误;
4.库文件路径设置问题;

对应第一第二种情况,可以通过下载安装lib来解决,Ubuntu大多数可以直接通过apt-get来安装:apt-get install libxxx-dev

因为我们前面已经安装过openGL的动态链接库libgl1-mesa-dev了。所以我们这里出错属于后面两种情况

这也正是最后一步需要设置的地方。cannot find -lGL 错误是指没有找到openGL库。虽然已经安装过libgl1-mesa-dev,但是qt没有找到,我们打开qt的gcc的lib文件夹,我的是在/home/macrofun/Qt5.5.1/5.5/gcc/lib/ 下面。发现里面确实没有libGL.so这个文件。

再到系统的/usr/lib/ 下面去看一下,也没有发现libGL.so这个文件。

原因找到,是没有建立正确的动态库链接所致


定位下libGL这个库在哪。然后在qt的gcc/lib目录或者在系统的 /usr/lib/目录下面创建对应的软链接即可。

输入命令 locate libGL.so


我需要的是32位的,通过locate发现刚安装的.so最新版本是1.2.0,那就用这个了。

ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0  /usr/lib/libGL.so

或者

ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /home/macrofun/Qt5.5.1/5.5/gcc/lib/libGL.so

再次编译,OK。


=========================================================

写在后面的话:

注意,如果你需要的是32位的openGL动态链接库,而你链接用的是64位的库文件,那么,还是会报错的。

error:skipping incompatible /home/macrofun/Qt5.5.1/5.5/gcc/lib/libGL.so when searching for -lGL




0 0
原创粉丝点击