尝试在WSL中安装glibc时出错:针对未定义的符号“%uuuuu GI\uuuuuu open64\u nocancel';

尝试在WSL中安装glibc时出错:针对未定义的符号“%uuuuu GI\uuuuuu open64\u nocancel';,c,gcc,gnu-make,glibc,windows-subsystem-for-linux,C,Gcc,Gnu Make,Glibc,Windows Subsystem For Linux,当尝试在我的机器上安装最新的glibc时,如果我执行了带有标志的“config”可执行文件:。/configure CFLAGS=“-O3-fPIC”--禁用健全性检查,它会正确生成生成文件,尽管我认为禁用健全性检查会产生一些错误 但每当我尝试使用make执行生成的Makefile时,控制台都会打印以下错误: make[3]: Leaving directory '/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/elf' gcc -nostdl

当尝试在我的机器上安装最新的glibc时,如果我执行了带有标志的“config”可执行文件:
。/configure CFLAGS=“-O3-fPIC”--禁用健全性检查
,它会正确生成生成文件,尽管我认为禁用健全性检查会产生一些错误

但每当我尝试使用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的当前版本只在区分大小写模式下设置了文件系统树的一部分。(以前的系统范围配置现在被忽略。)

还请注意,WSL并不是glibc的合适开发环境,因为WSL内核仿真中有很多错误导致测试失败