在WSL中安装glibc

本文档详细介绍了在Windows Subsystem for Linux (WSL) 中编译glibc时遇到的由于文件名大小写问题导致的编译错误。解决方法包括修改.makefile以避免.os和.oS文件覆盖,以及如何修复后续可能出现的错误。
摘要由CSDN通过智能技术生成

在WSL中编译glibc时会如下报错

/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

原因时linux是区分大小写的,编译文件时会产生.os和.oS文件。但是windows的文件系统不区分大小写,在linux编译是.os和.oS文件会相互覆盖,导致最终的编译错误。

解决办法

将.os和.oS文件编译成其他后缀的文件,如.o_static文件和.o_shared文件。这就需要修改相关的makefile文件了。
需要修改的文件为:https://sourceware.org/bugzilla/attachment.cgi?id=11236&action=diff#a/c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值