64位linux编译c提示gnu/stubs-32。h:没有这样的文件或目录错误怎么办

  介绍

小编给大家分享一下64位linux编译c提示gnu/stubs-32。h:没有这样的文件或目录错误怎么办,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户,多任务,支持多线程和多CPU的操作系统,使用Linux能运行主要的UNIX工具软件,应用程序和网络协议。

<强> 64位Linux提示gnu/stubs-32。h:没有这样的文件或目录的解决方法

这个问题是由于缺少32位兼容包,解决办法:

ubuntu: sudo apt-get安装libc6-dev-i386

CentOS: yum - y安装glibc-devel.i686

<强>再保险阿里云百胜源没有glibc.i686

阿里云的64位Linux发行版屏蔽了32位,也就是常见的i686软件包的数据源,你可以修改百胜的配置文件/etc/yum.conf找到其中排除=*我吗?86内核kernel-xen kernel-debug,用#注释掉即可,但是阿里不赞成这么做,如果32位,64位混用,比较容易出问题。

今天在64位linux编译程序时,出现如下错误提示

/usr/include/gnu/存根。h:七:错误:gnu/stubs-32。h:没有这样的文件或目录

解决方法如下

# yum - y安装glibc-devel

场景描述:在编译程序的时候出现如下的错误:
[1]:进入目录“/根/rpmbuild/构建/测试/conf # 39;从/usr/include/features.h
在文件包括:385年,
,,,,,,,,,,,,,,,,从/usr/include/stdint.h: 26日,
,,,,,,,,,,,,,,,,从. ./include/MyTypes.h: 4,
,,,,,,,,,,,,,,,,从conf_init.c: 1:
/usr/include/gnu/存根。h:七:错误:gnu/stubs-32。h:没有这样的文件或目录
[1]: [conf_init32 * * *。o]错误1
[1]:离开目录“/根/rpmbuild/构建/测试/conf # 39;
: * * *[所有]错误1

<强>解决过程:

1完全无法分析天书般的错误,英文非常简单,但是翻译非常困难,好在
/usr/include/gnu/存根。h:七:错误:gnu/stubs-32。h:没有这样的文件或目录
这一句了解,好既然少这个文件,拷贝一个文件过来,好解决问题。
2。经过老大的解决思路,看出端倪。
说明如下:conf_init.c:第一行引用. ./include/MyTypes.h头文件,
而这个头文件在第四行引用/usr/include/stdint.h头文件,
而这个头文件在第26行引用/usr/include/features.h头文件,
而这个头文件在385年第行应用了/usr/include/gnu/stubs.h头文件,
而这个头文件在第7行引用了gnu/存根- 32. h头文件
然后在编译的过程中,没有发现这个文件。大体意思清楚没有。
下面是/usr/include/gnu/存根。h文件的内容如下:

/*,却;能够file  selects 从而right  generated  file  of  __stub_FUNCTION& # 39;,宏   based 才能提醒,architecture  being  compiled 只。*/# include  & lt;比特/wordsize.h>==# if  __WORDSIZE  32   #,include  & lt - 32. h> gnu/存根;   # elif  __WORDSIZE ==64   #,include  & lt - 64. h> gnu/存根;   #船   #,error “unexpected  value  for  __WORDSIZE  macro"   # endif   ~

注明:这个文件说明了64位或32位者编译环境选择的头文件,所以在编译的过程中,
使用了m2的参数就会链接到32位版本的编译器,修改所有的Makefile文件,查看
是否有什么32位编译的删除即可。

查阅的外文资料几乎没有任何用处:
在Ubuntu # 39;进行实质性的年代叫做libc6-dev-i386——sudo apt-get libc6-dev-i386安装。见下文为Ubuntu 12.04额外的指令。

在Red Hat的发行版,glibc-devel包名称。i686(感谢大卫·加德纳# 39;s评论)

在CentOS 5.8, glibc-devel包名称。i386(由于JimKleck& # 39; s评论)

在CentOS 6.3, glibc-devel.i686包名称。

在SLES # 39;进行实质性的年代叫做glibc-devel-32bit——做zypper glibc-devel-32bit
在SLES系统上,执行上述指令安装,在/usr/include/gnu目录下确实生成了上述的文件。
在CentOS系统上,无效。

<强> 64位的机器上找不到32位的头文件,所以要安装glibc-devel。i686 (redhat不同系统不太一样)

随手搜了一个rpm包,用rpm -ivh安装报错:(因为服务器不联外网,所以这么安装)

错误:没有依赖关系

忽略依赖关系问题
<代码> rpm -nodeps我>

cd/usr/include/gnu/下查看,文件存根- 32. h已经存在。解决问题。

下面是/usr/include/gnu/存根。h文件的内容如下:

/*生成这个文件选择正确的文件“__stub_FUNCTION& # 39;基于宏

64位linux编译c提示gnu/stubs-32。h:没有这样的文件或目录错误怎么办