我不完全确定我的问题是否与共享库访问有关,或者它是否是特定于Qt的,但是这里是:
简而言之,我有一个Qt5.5应用程序,它包含一个基于QtMultimedia的视频和音频播放器。当我以root身份运行应用程序时,视频播放;否则,它会一直停留在 Loading 状态。绝对没有错误。
故事稍长:我无法使用官方Ubuntu 14.04 repos中提供的Qt5.2,因为我的应用程序同时使用QtWebKit和QtMultimedia模块;不幸的是,这些模块分别针对gstreamer 0.1和1.0构建,因此不能很好地协同工作。
所以,我安装了this repository的Qt5.5,安装到/opt/qt55
。尽管如所示设置了LD_LIBRARY_PATH,但我遇到了上述问题。但是当以root身份运行应用程序时,一切都顺利进行。
这是echo $LD_LIBRARY_PATH
:
/opt/qt55/lib/x86_64-linux-gnu:/opt/qt55/lib
对于它的价值,我只是意识到它在以root身份运行时起作用,所以我尝试在另一个干净的机器上从源代码编译Qt5.5(从repos中既没有Qt5.2也没有5.5),它在那里工作正常。所以我假设Qt5.5版本(似乎不太可能)或我的环境存在问题。
修改:如果有任何帮助,则在sudo ./app
或sudo -s
之后执行应用程序时播放媒体,但{{1>之后不 }}
答案 0 :(得分:0)
那么,在比较printenv
,sudo printenv
和sudo -i printenv
的输出后,我确定了罪魁祸首:
QT_NO_GLIB=1
取消设置可以解决问题。