64 비트 Liux 컴 파일 c 알림 gnu/stubs-32.h:No such file or directory 의 해결 방법

64 비트 Liux 알림 gnu/stubs-32.h:No such file or directory 의 해결 방법
이 문 제 는 32 비트 호 환 패키지 가 부족 하기 때문에 해결 방법:
ubuntu: sudo apt-get install libc6-dev-i386
CentOS:yum -y install glibc-devel.i686
Re 아 리 구름 yum 소스 에는 glibc.i686 이 없습니다.
아 리 클 라 우 드 의 64 비트 리 눅 스 발행 판 은 32 비트,즉 흔히 볼 수 있 는 i686 패키지 의 데이터 원본 을 차단 합 니 다.yum 의 프로필/etc/yum.conf 를 수정 하여 exclude=*.i 를 찾 을 수 있 습 니까?86 kernel kernel-xen kernel-debug,\#주석 을 사용 하면 됩 니 다.그러나 아 리 는 이렇게 하 는 것 에 찬성 하지 않 습 니 다.32 비트,64 비트 를 혼용 하면 문제 가 발생 하기 쉽 습 니 다.
오늘 64 비트 Liux 컴 파일 러 에서 다음 과 같은 오류 알림 이 발생 했 습 니 다.
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h:No such file or directory
해결 방법 은 다음 과 같다.
# yum -y install glibc-devel
장면 설명:컴 파일 러 에서 다음 과 같은 오류 가 발생 했 습 니 다.
make[1]: Entering directory `/root/rpmbuild/BUILD/test/conf'
In file included from /usr/include/features.h:385,
                 from /usr/include/stdint.h:26,
                 from ../include/MyTypes.h:4,
                 from conf_init.c:1:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make[1]: *** [conf_init32.o] Error 1
make[1]: Leaving directory `/root/rpmbuild/BUILD/test/conf'
make: *** [all] Error 1
해결 과정:
1.천 서 와 같은 오 류 를 분석 할 수 없습니다.영 어 는 매우 간단 하지만 번역 이 매우 어렵 습 니 다.다행 입 니 다.
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
이 한 마디 는 알 겠 습 니 다.자,이 문서 가 없 으 니 서 류 를 복사 해서 오 세 요.OK 문 제 를 해결 하 세 요.
2.첫째 의 해결 방향 을 통 해 실 마 리 를 알 수 있다.
설명 은 다음 과 같다:confinit.c:첫 번 째 줄 은.../include/MyTypes.h 헤더 파일 을 참조 합 니 다.
이 헤더 파일 은 네 번 째 줄 에서/usr/include/stdint.h 헤더 파일 을 참조 합 니 다.
이 헤더 파일 은 26 번 째 줄 에서/usr/include/features.h 헤더 파일 을 참조 합 니 다.
이 헤더 파일 은 385 줄 에/usr/include/gnu/stubs.h 헤더 파일 을 적용 하 였 습 니 다.
이 헤더 파일 은 7 줄 에서 gnu/stubs-32.h 헤더 파일 을 참조 하 였 습 니 다.
그리고 컴 파일 하 는 과정 에서 이 파일 을 발견 하지 못 했 습 니 다.대체적인 의 미 는 명확 합 니까?
다음은/usr/include/gnu/stubs.h 파일 의 내용 은 다음 과 같 습 니 다.


/* This file selects the right generated file of `__stub_FUNCTION' macros
  based on the architecture being compiled for. */

#include <bits/wordsize.h>

#if __WORDSIZE == 32
# include <gnu/stubs-32.h>
#elif __WORDSIZE == 64
# include <gnu/stubs-64.h>
#els
# error "unexpected value for __WORDSIZE macro"
#endif
~    
설명:이 파일 은 64 비트 또는 32 비트 컴 파일 환경 에서 선택 한 헤더 파일 을 설명 합 니 다.그래서 컴 파일 하 는 과정 에서
-m2 인 자 를 사용 하면 32 비트 버 전의 컴 파일 러 에 연결 되 고 모든 Makefile 파일 을 수정 하여 볼 수 있 습 니 다.
32 비트 컴 파일 을 삭제 하면 됩 니 다.
찾 아 본 외국어 자 료 는 거의 쓸모 가 없다.
On Ubuntu it's called libc6-dev-i386 - do sudo apt-get install libc6-dev-i386. See below for extra instructions for Ubuntu 12.04.
On Red Hat distros, the package name is glibc-devel.i686 (Thanks to David Gardner's comment)
On CentOS 5.8, the package name is glibc-devel.i386 (Thanks to JimKleck's comment)
On CentOS 6.3, the package name is glibc-devel.i686.
On SLES it's called glibc-devel-32bit - do zypper in glibc-devel-32bit
SLES 시스템 에서 상기 명령 을 실행 하여 설치 하고/usr/include/gnu 디 렉 터 리 에서 상기 파일 을 생 성 했 습 니 다.
CentOS 시스템 에서 유효 하지 않 습 니 다.
64 비트 의 기계 에서 32 비트 의 헤더 파일 을 찾 을 수 없습니다.그래서 glibc-devel.i686 을 설치 해 야 합 니 다.
rpm 패 키 지 를 손 쉽게 찾 았 습 니 다.rpm-ivh 설치 오류:(서버 가 외부 네트워크 에 연결 되 지 않 기 때문에 이렇게 설치 합 니 다)
error:Failed dependencies
의존 관계 문제 무시
설치 성공
cd/usr/include/gnu/아래 에서 볼 때 파일 stubs-32.h 가 이미 존재 합 니 다.문 제 를 해결 하 다.
다음은/usr/include/gnu/stubs.h 파일 의 내용 은 다음 과 같 습 니 다.
/* This file selects the right generated file of `__stub_FUNCTION' macros
based on the architecture being compiled for. */
include
if __WORDSIZE == 32
include
elif __WORDSIZE == 64
include
els
error “unexpected value for __WORDSIZE macro”
endif
~
사실은WORDSIZE 의 값 은 32 비트 의 헤더 파일 을 사용 할 지 64 비트 의 헤더 파일 을 사용 할 지 결정 합 니 다.

좋은 웹페이지 즐겨찾기