64 비트 Liux 컴 파일 c 알림 gnu/stubs-32.h:No such file or directory 의 해결 방법
3965 단어 gnustubs-32.hdirectory
이 문 제 는 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 비트 의 헤더 파일 을 사용 할 지 결정 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Go Quick Clone "yes"사용만약 당신이 매우 긴 설치 스크립트를 가지고 있다면, 아무도 참여하지 않는 상황에서 실행하기를 원합니다.만약 스크립트에 모든 문제에 긍정적인 답안이 있도록 강제하는 표지가 있다면, 문제는 없다.하지만 시나리오가 매번...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.