ubuntu - 编译Nachos源代码时出错“gnu / stubs-32.h:没有这样的文件或目录”

我想在我的笔记本电脑上安装Nachos,笔记本电脑上有Ubuntu 11.04。

代码在C中,所以要构建它我假设我需要交叉编译器。 这就是我的问题所在。 我使用命令下载了MIPS交叉编译器的源代码

wget http://mll.csie.ntu.edu.tw/course/os_f08/assignment/mips-decstation.linux-xgcc.gz

我用它解压缩它

tar zxvf mips-decstation.linux-xgcc.gz

这没关系,但是当我尝试构建nachos操作系统的源代码时,使用make,我得到了这个错误 -

/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory compilation terminated. make: *** [bitmap.o] Error 1

我试图按照这里给出的指示 - [http://mll.csie.ntu.edu.tw/course/os_f08/217.htm]并且一切正常,除非我尝试使用make。

10个解决方案

313 votes

你错过了32位libc dev包:

在Ubuntu上它叫做libc6-dev-i386 - 做yum install libstdc++-devel.i686.有关Ubuntu 12.04的额外说明,请参见下文。

在Red Hat发行版中,软件包名称为yum install libstdc++-devel.i686(感谢David Gardner的评论)

在CentOS 5.8上,软件包名称为yum install libstdc++-devel.i686(感谢JimKleck的评论)

在CentOS 6/7上,软件包名称为yum install libstdc++-devel.i686。

在SLES上它被称为glibc-devel-32bit - 做yum install libstdc++-devel.i686

在Gentoo上它被称为yum install libstdc++-devel.i686 - 做emerge -1a sys-libs/gcc[来源](注:一个人可以用equery确认这是正确的;做equery belongs belongs /usr/include/gnu/stubs-32.h)

你在使用Ubuntu 12.04吗? 存在将文件置于非标准位置的已知问题。 你还需要这样做:

export LIBRARY_PATH=/usr/lib/$(gcc -print-multiarch)

export C_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)

export CPLUS_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)

在构建之前的某个地方(比如你的.bashrc)。

如果您还在编译C ++代码,那么您还需要32位stdc ++库。 如果您看到此警告:

.... / usr / bin / ld:找不到-lstdc ++ ....

在Ubuntu上你需要做yum install libstdc++-devel.i686

在CentOS 5上,你需要做yum install libstdc++-devel.i686

在CentOS 6上,你需要做yum install libstdc++-devel.i686

请随意在其他系统的软件包中进行编辑。

Timothy Jones answered 2019-05-09T16:41:08Z

51 votes

来自GNU UPC网站:

编译器构建失败并出现致命错误:gnu / stubs-32.h:没有这样的文件或   目录

此错误消息显示在GCC / UPC的64位系统上   multilib功能已启用,它表示32位版本   没有安装libc。 有两种方法可以解决此问题:

安装32位版本的glibc(例如Fedora上的glibc-devel.i686,   CentOS,..)

通过提供“--disable-multilib”禁用“multilib”构建   打开编译器配置命令

ignis answered 2019-05-09T16:42:03Z

10 votes

试试做apt-file。

apt-file告诉我有问题的文件属于该软件包。

Keith Layne answered 2019-05-09T16:42:35Z

7 votes

现在在GCC维基常见问题中,请参阅[http://gcc.gnu.org/wiki/FAQ#gnu_stubs-32.h]

Jonathan Wakely answered 2019-05-09T16:43:01Z

1 votes

嗯,我在ubuntu 12.04上,在尝试编译gcc 4.7.2时遇到了同样的错误

我尝试安装stubs-32.h软件包并获得以下信息:

Package libc6-dev-i386 is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

E: Package 'libc6-dev-i386' has no installation candidate

我还在bash中设置了正确的环境变量:

export LIBRARY_PATH=/usr/lib/$(gcc -print-multiarch)

export C_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)

export CPLUS_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)

然而,我仍然得到错误然后我只是复制stubs-32.h到gcc在做快速差异后期望找到它的地方:

vic@ubuntu:/usr/include/i386-linux-gnu/gnu$ diff ../../gnu ./

Only in ./: stubs-32.h

Only in ../../gnu: stubs-64.h

vic@ubuntu:/usr/include/i386-linux-gnu/gnu$ sudo cp stubs-32.h ../../gnu/

[sudo] password for vic:

vic@ubuntu:/usr/include/i386-linux-gnu/gnu$ diff ../../gnu ./

Only in ../../gnu: stubs-64.h

vic@ubuntu:/usr/include/i386-linux-gnu/gnu$

它正在编译,让我们看看它是否抱怨更多......

Victor Parmar answered 2019-05-09T16:43:55Z

1 votes

我在fedora 18盒子上遇到以下错误:

1。/usr/include/gnu/stubs.h:7:27:致命错误:gnu / stubs-32.h:没有这样的文件或目录编译终止。

我安装了glibc.i686和glibc-devel.i686,然后编译失败并出现以下错误:

2。/ usr / bin / ld:在搜索-lgcc_s时跳过不兼容的/usr/lib/gcc/x86_64-redhat-linux/4.7.2/libgcc_s.so/ usr / bin / ld:找不到-lgcc_scollect2:错误:ld返回1退出状态

解:

我安装了(yum install)glibc.i686 glibc-devel.i386和libgcc.i686来摆脱编译问题。

现在编译32位(-m32)工作正常。

user2223366 answered 2019-05-09T16:45:03Z

0 votes

FWIW,在交叉编译时使用来自/ usr / include的文件时,它闻起来像是一个错误(或至少是未来痛苦的潜在来源)。

user47559 answered 2019-05-09T16:45:29Z

0 votes

gnu/stubs-32.h未直接包含在程序中。 它是gnu/stubs.h的后端类型头文件,就像gnu/stubs-64.h一样。您可以安装multilib软件包来添加它们。

user2775212 answered 2019-05-09T16:45:58Z

0 votes

#sudo apt-get install g ++ - multilib

应该在64位计算机(Debian / Ubuntu)上修复此错误。

skrishnakar answered 2019-05-09T16:46:36Z

0 votes

如果您在使用python的Mac-OSX终端中遇到此问题,请尝试更新您正在使用的软件包的版本。 因此,转到python中的文件以及指定软件包的位置,将它们更新为Internet上提供的最新版本。

D.Bhatia answered 2019-05-09T16:47:04Z

nachos交叉编译器java_ubuntu - 编译Nachos源代码时出错“gnu / stubs-32.h:没有这样的文件或目录”...相关推荐

  1. vxworks gcc linux,针对VxWorks的GCC交叉编译器无法编译C++

    我试图移植Linux库以在VxWorks上运行.我已经成功构建了binutils和gcc,目标为i486-wrs-vxworks,我可以成功构建一个简单的C程序.但是,当我尝试编译C++时,事情就会中 ...

  2. UNIX网络编程:unpv13e编译错误:net/if_dl.h:没有那个文件或目录

    在安装unpv13e的时候遇到问题 问题 $ cd ../libroute/ $ make gcc -I../lib -g -O2 -D_REENTRANT -Wall -c -o get_rtadd ...

  3. Linux错误27,解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”...

    centos64位编译32位代码,出现/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录,需要安装32位的glibc库文件. 安装 ...

  4. 宁可编译和链接时出错,也不要运行时出错

    除了极少数情况下会使C++抛出异常(例如,内存耗尽 ---- 见技巧7)外,运行时错误的概念和C++没什么关系,就象在C中一样.没有下溢,上溢,除零检查:没有数组越界检查,等等.一旦程序通过了编译和链 ...

  5. vc 编译c语言时出错,在vc++里输入c语言空函数,为什么编译没错,连接出错?

    在vc++里输入c语言空函数,为什么编译没错,连接出错? 來源:互聯網  2010-02-14 09:24:33  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 ...

  6. 安装程序遇到错误:0x80240037 尝试打开时出错 - WSUSSCAN.cab 错误: 0x80070002。WSUSSCAN.cab文件 是什么?cab 是什么文件?

    安装程序遇到错误:0x80240037 Windows安装程序遇到错误:0x80240037 尝试打开时出错 - WSUSSCAN.cab 错误: 0x80070002 WSUSSCAN.cab是什么 ...

  7. nachos交叉编译器java_交叉编译 go 程序

    相信大多数人和我一样,都是在 mac 或者 windows 上写 go 代码,但是最终上线运行却是在 Linux 系统之上.这就涉及到一个问题:由于操作系统架构的差异,编译过后的二进制程序能够在多个系 ...

  8. mupdf不支持x64_Delphi xe2使用x64编译器编译ASM代码时出错 . 不支持的语言功能:'ASM'...

    代码无法直接正确移植到x64,因为它将执行64位指针截断 - 有关详细信息,请参见下文 . 64位应用程序不支持将汇编语句与Pascal代码混合使用 . 使用Pascal代码或完全用汇编编写的函数替换 ...

  9. [ARM-assembly]-ARM交叉编译器下编译的各个镜像的反汇编文件分析

    文章目录 1.preloader的dump文件 2.ATF的dump文件 (1).section段 (2).符号表 symbol table (3).汇编代码段 disassembly (4).常量区 ...

  10. 编译linux内核时出错

    在编译linux内核的时候使用make menuconfig 可能出现下面的错误 *** Unable to find the ncurses libraries or the *** require ...

最新文章

  1. poj1330Nearest Common Ancestors 1470 Closest Common Ancestors(LCA算法)
  2. Alpha冲刺总结随笔
  3. 化工热力学重修补考第三章重点内容
  4. RabbitMQ(二):Work Queues、循环分发、消息确认、持久化、公平分发
  5. 吉林艺术学院监考人员被指为考生改画 学校回应
  6. 前端websocket获取数据后需要存本地吗_是什么让我放弃了restful api?了解清楚后我全面拥抱GraphQL...
  7. Apollo自动驾驶入门课程第⑥讲 — 预测
  8. python字典的应用实验报告_Python字典应用的一个例子
  9. 轻量在线人工客服系统 支持多商家+自动适配移动端
  10. 【干货】10张GIF动图让你弄懂循环、递归、二分检索等概念
  11. Realme XT发布会PPT曝光:后置6400万四摄+骁龙712
  12. 【防守方基础】危险报文识别
  13. 分享两个网址,一个是使用mssql自带的跟踪工具和分析工具
  14. 51NOD-1005 大数加法【大数】
  15. android jni示例_Android切换按钮,开关示例
  16. poj 2240 Arbitrage floyd基础,字符串输入有点麻烦
  17. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验01 顺序程序设计(2021级)
  18. chm转换成txt的url顺序问题
  19. centos7.6 安装docker
  20. iis7.0介绍和完整版如何下载

热门文章

  1. windows主机开启winrm端口powershell脚本
  2. 解决postgre报错ERROR #22P02 malformed array literal
  3. 表格求和怎么操作?如何运用sumif函数进行求和
  4. 使用Typora+PicGo+Gitee+坚果云搭建免费高效的个人云笔记
  5. Laravel文档 翻译合集
  6. Qt基于mupdf的pdf转图片
  7. node.js--尝试做一个crub
  8. 为什么要发布海外新闻稿,海外稿件怎么写
  9. linuxdeployqt ldd ERROR: ldd outputLine: .../libQt5Core.so.5: version `Qt_5' not found (required by
  10. Flink 源码: 从 KeyGroup 到 Rescale