在OK6410上运行QT程序找不到libQtGui.so.4的解决
2016年06月14日 16:53:48 qustJHJ 阅读数:3029
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qustDrJHJ/article/details/51673015
想在OK6410上运行自己经过交叉编译的QT程序,OK6410上烧写的是光盘所带的Linux系统,运行程序时出现以下现象:
./qt_server: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
qt_server是我写的QT应用程序,直接执行的:./qt_server -qws,错误如上。
在网上找了找解决方法,有人建议修改/etc/ld.so.conf文件,在该文件中加入自己连接库的路径,但是发现OK6410的/etc/目录下面根本没有这个文件,使用OK6410提供的开发文档修改也不行。
在论坛中看到LD_LIBRARY_PATH这个环境变量,这个环境变量是基于shell的,虽然还不太明白这个环境变量,但是也要试试,我的QT依赖的库文件目录是/opt/qt-4.7.1/lib/,在终端中输入如下:
export LD_LIBRARY_PATH=/opt/qt-4.7.1/lib: $LD_LIBRARY_PATH
然后查看LD_LIBRARY_PATH的内容,在终端中输入:
echo $LD_LIBRARY_PATH
查看到路径已经成功添加了,在运行自己 的QT程序,执行./qt_server -qws ;QT程序成功启动。
但是对于菜鸟的我,重新开机后,发现问题又回来了,重新查看LD_LIBRARY_PATH,发现里面什么也没有,后来在论坛上看到,才明白,使用export整进去的只是在当前shell中有用,开机重启后消失。
如何只需设置一次,以后就不用重新设置呢?于是我修改了/etc/profile文件,打开该文件,在该文件中添加如下:
LD_LIBRARY_PATH=/opt/qt-4.7.1/lib: $LD_LIBRARY_PATH
export LD_LIBRARY_PATH
保存后退出,重新打开OK6410,发现生效了!