我已经编译了一个需要以另一个用户身份运行的 Qt 应用程序。但是,当它以该用户身份运行时,它无法加载 Qt 共享库:
~/MyApp/src $ sudo -u otherUser ./MyApp
./MyApp: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
做ldd
as otherUser
,我们看到了预期的:
~/MyApp/src $ sudo -u otherUser ldd ./MyApp
libQtGui.so.4 => not found
但是,当我ldd
自己做时,我可以找到libQtGui.so.4
共享库就好了。
~/MyApp/src $ ldd ./MyApp
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtGui.so.4 (0x00002b97a4e1a000)
libQtNetwork.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtNetwork.so.4 (0x00002b97a5bf1000)
为什么otherUser
找不到共享库?我需要做什么才能使其MyApp
可执行otherUser
?
对于两个用户,我的 LD_LIBRARY_PATH 似乎都是空的:
~/MyApp/src $ echo $LD_LIBRARY_PATH
~/MyApp/src $ sudo -u otherUser echo $LD_LIBRARY_PATH
~/MyApp/src $