gpt4 book ai didi

c - 尝试在 WSL 中安装 glibc 时出错 : relocation R_X86_64_PC32 against undefined symbol `__GI___open64_nocancel'

转载 作者:行者123 更新时间:2023-12-01 19:21:17 28 4
gpt4 key购买 nike

当尝试将最新的 glibc 安装到我的机器中时,我执行了带有标志的“config”可执行文件: ../configure CFLAGS="-O3 -fPIC"--disable-sanity-checks它正确生成了 makefile,尽管我认为禁用健全性检查会给出一些错误。

但是每当我尝试使用 make 执行生成的 Makefile 时,控制台都会打印以下错误:

make[3]: Leaving directory '/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/elf'
gcc -nostdlib -nostartfiles -shared -o /mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/ld.so.new \
-Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,defs \
/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/librtld.os -Wl,--version-script=/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/ld.map
\
-Wl,-soname=ld-linux-x86-64.so.2 \
-Wl,-defsym=_begin=0
/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/librtld.os: In function `process_envvars':
/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/elf/rtld.c:2686: undefined reference to `__GI___open64_nocancel'
/usr/bin/ld: /mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/librtld.os: relocation R_X86_64_PC32 against undefined symbol `__GI___open64_nocancel' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

正如我所说,我尝试添加 -fPIC 标志,但仍然没有捕获它。我对 .os.map 和其他扩展(例如这些)有点陌生。我这样做完全错了吗?否则,我如何使用 gcc 编译该文件,而不是将标志传递给整个 make 命令?

最佳答案

您的文件系统设置不正确。默认情况下,NTFS 保留大小写,但不区分大小写。据我了解,当前版本的 WSL 仅以区分大小写的模式设置了部分文件系统树。 (以前的系统范围配置现在已被忽略。)

Building glibc requires a case-sensitive file system.另请注意,WSL 并不是 glibc 的合适开发环境,因为 WSL 内核模拟中的错误导致了很多测试失败。

关于c - 尝试在 WSL 中安装 glibc 时出错 : relocation R_X86_64_PC32 against undefined symbol `__GI___open64_nocancel' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55355885/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com