七、Qt5的源码安装

这里安装的是“qt-everywhere-opensource-src-5.6.0”,是源码,因为我图形界面安装整合版Qt时,项目想调用qt总是找不到qt,这样手动安装我也知道安装位置,可以直接添加到cmake文件里去。

1、执行配置文件:

进入目录,配置文件

./configure -prefix $PWD/qtbase -opensource -nomake tests

需要输入
o 使用open source版本
yes 确认用户协议

2、安装依赖项:

在“/qt-everywhere-opensource-src-5.6.0/qtbase/src/plugins/platforms/xcb”下面有个readme文件列出了需要的库

有些比较老没有了,Ubuntu16.04请按照我下面列出来的安装,都是可以安装成功的

apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 
apt-get install libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 
apt-get install libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync-dev 
apt-get install libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev 
apt-get install libxcb-render-util0 libxcb-render-util0-dev libxcb-glx0-dev libxcb-xinerama0-dev

3、接下来make

非常久,记得多线程

make all -j $(($(nproc) + 1))

等吧,2个小时算快的
但是可能由于多线程有的线程过快,导致顺序错乱....这时候还得改成make all 单线程的

make install

完毕!

4、关于qt库的链接

这仅仅是安装,一般是follow的项目需要安装qt库,这时候需要让项目找到qt在哪里,怎么办呢?

如果项目有cmake文件的话,一般会通过find_package自动找到,

如果找不到,可以手动设置

set(CMAKE_PREFIX_PATH "/home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase")

这里填写qtbase的路径

如果项目在执行时找不到qt,报错说libQt5Widgets.so.5 之类的找不到,可以创建一个链接到系统目录,程序就可以看到了

ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/libQt5Widgets.so.5 /usr/lib
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/libQt5Gui.so.5 /usr/lib
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/libQt5Core.so.5 /usr/lib

在这之前,先删除原来的没用的qt的.so文件

rm /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
rm /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
rm /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

Good luck!


5、各种bug

1、/usr/bind.gold: error: cannot find -lboost_regex

找不到lboost_regex,先看下 

echo $LD_LIBRARY_PATH  

如果没有的话,在 ~/.bashrc 里加入

export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH"

还不行的话,手动生成软链接

sudo ln -s /usr/local/lib/libboost_regex.so.1.64.0 /usr/lib/x86_64-linux-gnu/libboost_regex.so
sudo ln -s /usr/local/lib/libboost_regex.so.1.64.0 /usr/lib/libboost_regex.so

2、Unknown module(s) in QT: quick

在configure时取消这个模块(不推荐!我这样通过了,后来调用时又出错了,还是需要这个模块的)

/configure -prefix $PWD/qtbase -opensource -nomake tests -skip qtdeclarative

3、undefined reference to `png_set_longjmp_fn'

libpng太老了,可能默认是12的,装一个15的,然后换掉默认的链接。

下载地址:http://download.chinaunix.net/download/0006000/5976.shtml

ln -s /usr/local/lib/libpng15.so /usr/lib/x86_64-linux-gnu/libpng15.so -f
ln -s /usr/local/lib/libpng15.so /usr/lib/x86_64-linux-gnu/libpng.so -f

4、Qt编译错误“GL/gl.h:No such file or directory”的解决方法 

apt-get install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev 
 
 

你可能感兴趣的:(caffe)