radare2 1.5.0をソースコードからビルドしようとしています。
ソースコードは以下になります
https://github.com/radareorg/radare2/releases/tag/1.5.0
READMEを読み、
radare2 can be built without any special dependency, just use make and get a working toolchain (gcc, clang, tcc, ..)
とありましたので、gcc, clang, tcc, をインストールしたあと、makeを実行したのですが、以下のエラーで失敗します。
Makefile:245: ターゲット 'capstone-sync' のレシピで失敗しました make[1]: *** [capstone-sync] エラー 1 make[1]: ディレクトリ '/home/guru/work/radare2-1.5.0/shlr' から出ます Makefile:50: ターゲット 'all' のレシピで失敗しました
Makefileの内容は以下になります。
49 all: plugins.cfg libr/include/r_version.h 50 ${MAKE} -C shlr/zip 51 ${MAKE} -C libr/util 52 ${MAKE} -C libr/socket 53 ${MAKE} -C shlr 54 ${MAKE} -C libr 55 ${MAKE} -C binr 245 symstall install-symlink: install-man-symlink install-doc-symlink install-pkgconfig-symlink symstall-www 246 cd libr && ${MAKE} install-symlink 247 cd binr && ${MAKE} install-symlink 248 cd shlr && ${MAKE} install-symlink 249 for DIR in ${DATADIRS} ; do (\ 250 cd "$$DIR" ; \ 251 echo "$$DIR" ; \ 252 ${MAKE} install-symlink ); \ 253 done 254 mkdir -p "${DESTDIR}${BINDIR}" 255 ln -fs "${PWD}/sys/indent.sh" "${DESTDIR}${BINDIR}/r2-indent" 256 ln -fs "${PWD}/sys/r2-docker.sh" "${DESTDIR}${BINDIR}/r2-docker" 257 mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud" 258 cd "$(DESTDIR)$(LIBDIR)/radare2/" ;\ 259 rm -f last ; ln -fs $(VERSION) last 260 cd "$(DESTDIR)$(DATADIR)/radare2/" ;\ 261 rm -f last ; ln -fs $(VERSION) last 262 ln -fs "${PWD}/doc/hud" "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud/main" 263 mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/" 264 $(SHELL) sys/ldconfig.sh 265 $(SHELL) ./configure-plugins --rm-static $(DESTDIR)/$(LIBDIR)/radare2/last/
makeを成功させるにはどのようにすれば良いでしょうか?
ツールのバージョンは以下です
gcc : 5.4.0
clang : 3.8.0-2ubuntu4
tcc : 0.9.26
make : 4.1
ubuntu : 16.04 x86
よろしくお願いします。
./shlr/zip/makefile の内容です
1 NAME=rz 2 LIBAR=librz.$(EXT_AR) 3 4 include ../../config-user.mk 5 include ../../libr/config.mk 6 include ../../mk/platform.mk 7 include ../../mk/${COMPILER}.mk 8 9 ifeq ($(USE_LIB_ZIP),1) 10 all: 11 rm -f librz.$(EXT_AR) 12 else 13 14 15 LIBAR=librz.$(EXT_AR) 16 RANLIB?=ranlib 17 18 all: $(LIBAR) 19 20 $(LIBAR): zip/libr_zip.$(EXT_AR) 21 ${CC_AR} zlib/*.o zip/*.o 22 $(RANLIB) librz.$(EXT_AR) 23 24 zip/libr_zip.$(EXT_AR): zlib/libr_z.$(EXT_AR) 25 $(MAKE) -C zip 26 27 zlib/libr_z.$(EXT_AR): 28 $(MAKE) -C zlib 29 30 clean: 31 $(MAKE) -C zlib clean 32 $(MAKE) -C zip clean 33 rm -f *.$(EXT_AR) *.${EXT_SO} zlib/*.$(EXT_AR) zip/*.$(EXT_AR) 34 endif
===追記===
git インストール後、 ./configureを行ってもエラーが出てしまいます。
./configureは成功します。
cleaning temporally files... done Final report: - PREFIX = /usr/local - HAVE_LIB_GMP = 0 - HAVE_OPENSSL = 0 - USE_CAPSTONE = 0 - HAVE_FORK = 1 - VERSION = 1.5.0 - USE_LIB_ZIP = 0 - USE_LIB_MAGIC = 0 - DEBUGGER = 1 - CC = gcc - USERCC = gcc - USEROSTYPE = gnulinux - LIBVERSION = 1.5.0 - BUILD = i686-unknown-linux-gnu - HOST = i686-unknown-linux-gnu - TARGET = i686-unknown-linux-gnu
makeのエラー内容は以下です。
gcc -c -MD -fPIC -g -Wall -D__UNIX__=1 -DCORELIB -Iarch -I/home/guru/work/radare2-1.5.0/libr/..//shlr -I/home/guru/work/radare2-1.5.0/libr/..//libr/asm/arch/include -I/home/guru/work/radare2-1.5.0/libr/../shlr/capstone/include -I../asm/arch/8051 -I../asm/arch/include -I../asm/arch/cr16/ -I../asm/arch/ebc/ -Iarch/gb/ -I../asm/arch/h8300/ -I../asm/arch/msp430/ -I../asm/arch/rsp -I../asm/arch/v810/ -I../asm/arch/v850/ -I../asm/arch/x86/udis86 -I../../asm/arch/x86/udis86 -DHAVE_STRING_H=1 -I/home/guru/work/radare2-1.5.0/libr -I/home/guru/work/radare2-1.5.0/libr/include -o /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.o /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c:464:30: error: unknown type name ‘arm64_vess’ static const char *vess_name(arm64_vess vess) { ^ /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c: In function ‘opex64’: /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c:579:9: error: ‘cs_arm64_op {aka struct cs_arm64_op}’ has no member named ‘vess’ if (op->vess != ARM64_VESS_INVALID) { ^ /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c:579:19: error: ‘ARM64_VESS_INVALID’ undeclared (first use in this function) if (op->vess != ARM64_VESS_INVALID) { ^ /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c:579:19: note: each undeclared identifier is reported only once for each function it appears in /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c:580:47: warning: implicit declaration of function ‘vess_name’ [-Wimplicit-function-declaration] r_strbuf_appendf (buf, ",\"vess\":\"%s\"", vess_name (op->vess)); ^ /home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.c:580:60: error: ‘cs_arm64_op {aka struct cs_arm64_op}’ has no member named ‘vess’ r_strbuf_appendf (buf, ",\"vess\":\"%s\"", vess_name (op->vess)); ^ /home/guru/work/radare2-1.5.0/libr/../global.mk:43: ターゲット '/home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.o' のレシピで失敗しました make[3]: *** [/home/guru/work/radare2-1.5.0/libr/..//libr/anal/p/anal_arm_cs.o] エラー 1 make[3]: ディレクトリ '/home/guru/work/radare2-1.5.0/libr/anal' から出ます Makefile:91: ターゲット 'anal' のレシピで失敗しました make[2]: *** [anal] エラー 2 make[2]: ディレクトリ '/home/guru/work/radare2-1.5.0/libr' から出ます Makefile:28: ターゲット 'all' のレシピで失敗しました make[1]: *** [all] エラー 2 make[1]: ディレクトリ '/home/guru/work/radare2-1.5.0/libr' から出ます Makefile:50: ターゲット 'all' のレシピで失敗しました make: *** [all] エラー 2
/libr/anal/p/anal_arm_cs.c がエラーを起こしているようですが、どのように修正すればよいでしょうか
あなたの回答
tips
プレビュー