环境:centos7.2 qt5.5.1 qtcreator编译后获得可执行程序A
1.将文件夹拷到没有装qt的机器上,进入文件夹,点击程序A,没有任何反应,因为缺少so库,命令行进入文件夹,执行ldd A
会打印程序依赖库的情况,查找not found相关的库,去安装qt的机器上把相关库拷到与A同一目录下,我的qt安装路径为/opt/Qt5.5.1/5.5/gcc_64/lib,在这个路径下可以找到大部分库,如常用的:libQt5Widgets.so.5 libQt5Gui.so.5 libQt5Core.so.5等
2.拷过去之后需要把当前路径加到/etc/ld.so.conf中,然后执行ldconfig.此时再执行ldd A,缺少的库就有了。
3.在命令行下执行./A ,出错误:This application failed to start because it could not find or load the Qt platform plugin "xcb". 将/opt/Qt5.5.1/5.5/gcc_64/lib路径下的libQt5DBus.so.5和libQt5XcbQpa.so.5拷到与A同一路径下,并将/opt/Qt5.5.1/5.5/gcc_64/plugins路径下的platforms拷到程序路径下,执行ldconfig,再次运行./A,程序可以运行起来,但是界面没有,只有状态栏的图标。
4.此时命令行报错:QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled,将/opt/Qt5.5.1/5.5/gcc_64/plugins路径下的xcbglintegrations拷过来,再次运行./A,程序正常跑了起来。