busybox 컴파일 오류miscutils/nandwrite.c:151:3: error: ‘MTD_FILE_MODE_RAW’ undeclared

1203 단어
내 로컬 환경은 Ubuntu 14.04입니다.
구성 컴파일:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
busybox를 컴파일할 때 다음과 같은 문제가 발견되었습니다.
miscutils/nandwrite.c: In function ‘nandwrite_main’: miscutils/nandwrite.c:151:3: error: ‘MTD_FILE_MODE_RAW’ undeclared (first use in this function)
miscutils/nandwrite.c:151:3: note: each undeclared identifier is reported only once for each function it appears in
구글, MTD_FILE_MODE_RAW는 linux의 헤더 파일/usr/include/mtd/mtd-user에 나타납니다.h, 정의:
enum mtd_file_modes {     MTD_FILE_MODE_NORMAL = MTD_OTP_OFF,     MTD_FILE_MODE_OTP_FACTORY = MTD_OTP_FACTORY,     MTD_FILE_MODE_OTP_USER = MTD_OTP_USER,     MTD_FILE_MODE_RAW, };
nandwrite를 보십시오.c 코드
#include "libbb.h"
#include <mtd/mtd-user.h>

......

이것은 구덩이가 아니냐, 이 헤더 파일을 포함하지 않았다. 그리고 나는 이 헤더 파일에 가입해야 한다
#include "libbb.h"
#include <mtd/mtd-abi.h>
#include <mtd/mtd-user.h>

......

똑같이 문제가 있어요. 이상하네요. 한동안 문제가 있었어요. 계속 깊이 조사하지 못했어요...
어쩔 수 없어, 헤더 파일 mtd-abi에 따라.hnandwrite에 수동으로 하나를 추가했습니다. 컴파일이 통과되었습니다.
사실 또 다른 방법은makemenuconfig에서nandwrite 모듈을 제거하면 된다는 것이다.

좋은 웹페이지 즐겨찾기