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的實數表示。輸出格式 輸出僅...