ubuntu mtd utils交叉編譯過程

2021-08-22 13:24:06 字數 4210 閱讀 6863

1,zlib(

)2,lzo(

)3,e2fsprogs(

)先安裝依賴庫:

1,解壓zlib檔案,執行3條命令:

cc=arm-linux-gcc ./configure --host=arm-linux --prefix=生成的路徑

make

make install

2、安裝lzo同zlib一樣,也是三條命令

3、安裝e2fsprogs:同樣,只不過不需要安裝所有,所以第三條命令改為make install-libs

依賴庫的安裝基本上網上一搜都很多,一般也沒什麼問題,下面主要介紹一下mtd-utils的安裝和我遇到的問題及解決方法

2、編譯前準備

make命令為:make cross=arm-linux- without_xattr=1

直接make會報錯,提示找不到依賴,所以,這時候就要把前面裝的三個庫加進去了,具體加法為:

下面是修改好的makefile檔案,紅色部分是需要新增或修改的

version = 1.4.8

zlibcppflags=-izlib的標頭檔案路徑

lzocppflags=-ilzo的標頭檔案路徑

uuidcflags=-ie2fsprogs的標頭檔案路徑

cppflags += -i./include -i$(builddir)/include -i./ubi-utils/include $(zlibcppflags) $(lzocppflags) $(uuidcflags)

ifeq ($(without_xattr), 1)

cppflags += -dwithout_xattr

endif

ifeq ($(without_lzo), 1)

cppflags += -dwithout_lzo

else

lzoldlibs = -llzo的lib路徑 -llzo2

endif

uuidldlibs = -le2fsprogs的lib路徑 -luuid

tests = tests

mtd_bins = \

ftl_format flash_erase nanddump doc_loadbios \

ftl_check mkfs.jffs2 flash_lock flash_unlock \

flash_otp_info flash_otp_dump mtd_debug flashcp nandwrite nandtest \

jffs2dump \

nftldump nftl_format docfdisk \

rfddump rfdformat \

serve_image recv_image \

sumtool jffs2reader

ubi_bins = \

ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \

ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol

bins = $(mtd_bins)

bins += mkfs.ubifs/mkfs.ubifs

bins += $(addprefix ubi-utils/,$(ubi_bins))

scripts = flash_eraseall

targets = $(bins)

targets += lib/libmtd.a

targets += ubi-utils/libubi.a

objdeps = $(builddir)/include/version.h

include common.mk

clean::

ifneq ($(builddir)/.git,)

ifneq ($(builddir),.)

ifneq ($(builddir),$(curdir))

rm -rf $(builddir)

endif

endif

endif

@if test -d "$(builddir)/"; then \

find $(builddir)/ -xdev \

'(' -name '*.[ao]' -o -name '.*.c.dep' ')' \

-exec rm -f {} + ; \

firm -f $(builddir)/include/version.h

$(make) -c $(tests) clean

install:: $ $

mkdir -p $/$

install -m 0755 $ $ $/$/

mkdir -p $/$/man1

gzip -9c mkfs.jffs2.1 > $/$/man1/mkfs.jffs2.1.gz

tests::

$(make) -c $(tests)

cscope:

cscope -br

$(builddir)/include/version.h: $(builddir)/include/version.h.tmp

$(call becho,chk)

$(q)cmp -s $@ [email protected] && rm -f [email protected] || mv [email protected] $@

$(builddir)/include/version.h.tmp:

$mkdir -p $(dir $@)

$(q)echo '#define version "$(version)"' > $@

## utils in top level

#obj-mkfs.jffs2 = compr_rtime.o compr_zlib.o compr_lzo.o compr.o rbtree.o

ldflags_mkfs.jffs2 = $(zlibldflags) $(lzoldflags)

ldlibs_mkfs.jffs2  = -lz $(lzoldlibs)

ldflags_jffs2reader = $(zlibldflags) $(lzoldflags)

ldlibs_jffs2reader  = -lz $(lzoldlibs)

$(foreach v,$(mtd_bins),$(eval $(call mkdep,,$(v))))

## common libmtd

#obj-libmtd.a = libmtd.o libmtd_legacy.o libcrc32.o libfec.o

$(call _mkdep,lib/,libmtd.a)

## utils in mkfs.ubifs subdir

#obj-mkfs.ubifs = crc16.o lpt.o compr.o devtable.o \

hashtable/hashtable.o hashtable/hashtable_itr.o

ldlibs_mkfs.ubifs = -lz -lm $(lzoldlibs) $(uuidldlibs)

$(call mkdep,mkfs.ubifs/,mkfs.ubifs,,ubi-utils/libubi.a)

## utils in ubi-utils/ subdir

#obj-libiniparser.a = libiniparser.o dictionary.o

obj-libscan.a      = libscan.o

obj-libubi.a       = libubi.o

obj-libubigen.a    = libubigen.o

obj-mtdinfo   = libubigen.a

obj-ubinize   = libubigen.a libiniparser.a

obj-ubiformat = libubigen.a libscan.a

$(foreach v,libubi.a libubigen.a libiniparser.a libscan.a,$(eval $(call _mkdep,ubi-utils/,$(v))))

$(foreach v,$(ubi_bins),$(eval $(call mkdep,ubi-utils/,$(v),libubi.a ubiutils-common.o)))

修改好makfile檔案就可以make了,之後生成的檔案和工具都在mtd-utils資料夾的arm-none-linux-gnueabi資料夾下。

矩形面積交

時間限制 1.0s 記憶體限制 512.0mb 問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個...

矩形面積交

問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...

矩形面積交

問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...