Ubuntu 20.04 上缺少 libc6-dev 头文件

Ubuntu 20.04 上缺少 libc6-dev 头文件

byteswap-16.h包含许多程序中使用的宏。在 Ubuntu 18.04 上,此文件是libc6-dev包并安装到/usr/include/x86_64-linux-gnu/bits。从 20.04 开始,此文件不再包含在该包中:

$ sudo apt install libc6-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libc6-dev is already the newest version (2.31-0ubuntu9).
0 upgraded, 0 newly installed, 0 to remove and 51 not upgraded.

$ ls /usr/include/x86_64-linux-gnu/bits/byteswap-16.h
ls: cannot access '/usr/include/x86_64-linux-gnu/bits/byteswap-16.h': No such file or directory

因此,不再可能编译各种程序:

$ make
make --directory=lib/dglib/lib
make[1]: Entering directory '/home/duque004/git/DGGRID/src/lib/dglib/lib'
make[1]: *** No rule to make target '/usr/include/x86_64-linux-gnu/bits/byteswap-16.h', needed by 'DgTriGrid2DS.o'.  Stop.
make[1]: Leaving directory '/home/duque004/git/DGGRID/src/lib/dglib/lib'
make: *** [Makefile:14: lib/dglib/lib] Error 2

我不想手动干预系统文件夹来获取这个头文件。它可以以某种方式从存储库中获取吗?

更新:这似乎是一个更普遍的问题。我发现这个包中缺少另外两个头文件(相对18.04):libio.h_G_config.h

答案1

正如我们从错误报告中读到的https://pad.lv/1888302——这是上游的决定。

所以你必须使用以前稳定的 Ubuntu 18.04 LTS 版本来编译所需的东西。

答案2

将这些文件从Ubuntu18系统复制到Ubuntu20系统可以解决此问题。

该链接包括我从同事的 Ubuntu18 电脑上复制的文件,解决了我的问题。

https://xfl.jp/4svBZG

你需要把它放在你的/usr/include/x86_64-linux-gnu/bits/

例子:

sudo cp byteswap-16.h /usr/include/x86_64-linux-gnu/bits/
sudo cp libio.h /usr/include/x86_64-linux-gnu/bits/
sudo cp _G_config.h /usr/include/x86_64-linux-gnu/bits/

对了,这些文件的有效期只有30天,如果有人找到更好的文件分享网站,可以在答案里分享新的文件链接,谢谢!

回答问题时间:2021 0305

相关内容