1 编译Qt 5.6.1源码,生成qmake,用生成的qmake去编译产生opengl例程,执行时会报

 “QOpenGLShaderProgram::uniformLocation(qt_Matrix): shader program is not linked QOpenG”错误 

2 通过ldd命令查看 opengl 程序的链接库关系,发现opengl库 libGL.so链接路径为

    /usr/lib/aarch64-linux-gnu/mwv

   而打开ld.so.conf.d目录下的链接配置文件,发现系统环境opengl的ld链接路径是

    /usr/lib/aarch64-linux-gnu/mesa

  所以GL库链接路径对不上,导致动态加载组件有问题。

3 解决方法就是增加正确路径到系统

进入目录/etc/ld.so.conf.d,找到GL对应的配置文件aarch64-linux-gnu_GL.conf,打开文件,增加“/usr/lib/aarch64-linux-gnu/mwv”一行,关闭保存(具体路径名称要看你应用的ldd执行结果)

4 执行一下ldconfig更新一下,再次运行Qt 的opengl例程,一切OK。

 

 

Logo

更多推荐