Java:符号查找错误:/snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0:未定义的符号:__libc_pthread_init,版本 GLIBC_PRIVATE

Java: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE

提问人:Leonardo Monteiro 提问时间:4/3/2023 最后编辑:Leonardo Monteiro 更新时间:4/11/2023 访问量:5293

问:

我一直在研究一个使用 gui.jar 文件导入一些类的 Java 项目。直到昨天,一切都很好。现在,我可以通过命令编译 .class 文件

javac -d ./bin -sourcepath ./src -classpath ./bin/gui.jar src/simulation/TestSimulateur.javac

但是当我尝试用

java -classpath bin:bin/gui.jar simulation.TestSimulateur

我收到错误

java: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE make: *** [Makefile:47: carte1] Error 127

我对 snap 和库的工作原理知之甚少,所以我不确定问题的根源。奇怪的是,只有当我在 VSCode 上运行它时才会出现问题,而如果我在普通的 Linux 终端上运行它,它就可以正常工作。

我搜索了很多,但找不到解决问题的方法。正如我所说,我是Linux系统的新手。在我的尝试之间,我尝试重新安装 VSCode、更新系统和更新 snap 包,但这些都没有奏效。

java linux 未定义符号

评论


答:

5赞 Baole Fang 4/6/2023 #1

在最近的 ubuntu 更新后,我也遇到了这个错误。我认为这与 snap 和 vscode 有关。

一个简单的解决方案是使用

sudo snap remove code

然后,使用 apt 安装 vscode,如 https://code.visualstudio.com/docs/setup/linux 所示

sudo apt install ./<file>.deb
18赞 AmeyaVS 4/7/2023 #2

虽然我已经在这里回答了

如何配置 VSCode Snap 包库以供使用的问题。 他们正在设置以下环境变量,该变量由 VSCode 终端继承。GTK_PATH

在 VSCode 终端中取消设置环境变量似乎对我有用。

unset GTK_PATH

作为更永久的解决方法,您还可以在 VS Code 用户设置中取消设置,运行“首选项:打开用户设置 (JSON)”并将其添加到:GTK_PATHsettings.json

    "terminal.integrated.env.linux": {
        "GTK_PATH": ""
    }

评论

0赞 Reyno 4/8/2023
从 VSCode 终端取消设置对我不起作用。但是当我在launch.json中添加它时(如另一个答案中所述),它起作用了!
0赞 AmeyaVS 4/8/2023
您是否正在从 VSCode UI 启动调试/任务?
0赞 Reyno 4/8/2023
是,用于调试和断点。所以基本上我使用的是 F5(或运行>开始调试)
1赞 AmeyaVS 4/8/2023
@Reyno,您可以尝试将环境变量设置为空。这也应该有助于暂时解决它。setting.json
1赞 AmeyaVS 4/12/2023
@LeonardoMonteiro,此 bug 是 VSCode Snap 包在 VSCode 脚本中指定环境变量的表现形式,该变量在 VSCode 的终端进程中继承。您可以在此处找到相关讨论。GTK_PATH