错误:ld.so:无法预加载来自LD_PRELOAD的对象'libgtk3-nocsd.so.0'

Com*_*ndZ 9 linux ubuntu gtk3 hugo

在Ubuntu 18.04上使用Hugo和AWS CLI时遇到此问题。

ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (failed to map segment from shared object): ignored.
Run Code Online (Sandbox Code Playgroud)

这是Ubuntu 18.04,Hugo和AWS CLI的全新安装。

Com*_*ndZ 23

经过一些网络搜索后找到了答案:https : //github.com/PX4/Firmware/issues/9409

如果您.bashrc使用下面的行更新它,则应该可以解决此问题:

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
Run Code Online (Sandbox Code Playgroud)

此外,您可能需要安装以下软件包:

sudo apt install gtk3-nocsd
Run Code Online (Sandbox Code Playgroud)

另一个用户报告说安装了以下软件包可以解决他们的问题:

sudo apt-get install libgtk3-nocsd0:i386
Run Code Online (Sandbox Code Playgroud)

  • 在 Ubuntu 20.04 LTS 中,libgtk3-nocsd0 没有 i386 版本,因此“sudo apt-get install libgtk3-nocsd0:i386”将失败,并显示“E: 无法找到软件包 libgtk3-nocsd0:i386”。我试图通过在 20.04 上安装 18.04 DEB 来解决这个问题:手动下载 `libgtk3-nocsd0_3-1ubuntu1_i386.deb` 并使用 `sudo dpkg -i libgtk3-nocsd0_3-1ubuntu1_i386.deb` 安装。这似乎对我有用。 (2认同)
  • 这会阻碍其他依赖 LD_PRELOAD 的应用程序吗?LD_PRELOAD 是“附加的”(并且任何请求预加载的应用程序都会添加到此),还是它们会被最新的 LD_PRELOAD 取代? (2认同)

小智 7

跑步

$ sudo grep -r LD_PRELOAD /etc $HOME
Run Code Online (Sandbox Code Playgroud)

我发现了很多被删除的包 gtk3-nocsd 的配置文件,比如

/etc/X11/Xsession.d/51gtk3-nocsd-detect: export LD_PRELOAD="libgtk3-nocsd.so.0${LD_PRELOAD:+:$LD_PRELOAD}"
Run Code Online (Sandbox Code Playgroud)

只需删除那些旧配置:

$ sudo apt-get purge gtk3-nocsd
Run Code Online (Sandbox Code Playgroud)