anestisb / vdexExtractor

Tool to decompile & extract Android Dex bytecode from Vdex files
Apache License 2.0
1k stars 215 forks source link

Issues using make array previously defined #71

Open kaosine opened 2 years ago

kaosine commented 2 years ago

Trying to build on manjaro and I get the following error:

ake: Entering directory '/vdexExtractor/src' rm -f *.o rm -f */*.o rm -f vdexExtractor make: Leaving directory '/vdexExtractor/src' make: Entering directory '/vdexExtractor/src' gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION=\"dev-78f283b\" -c dex.c -o dex.o gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION=\"dev-78f283b\" -c dex_instruction.c -o dex_instruction.o dex_instruction.c:655:43: error: argument 2 of type ‘u4[kMaxVarArgRegs]’ {aka ‘unsigned int[kMaxVarArgRegs]’} declared as a variable length array [-Werror=vla-parameter] 655 | void dexInstr_getVarArgs(u2 *code_ptr, u4 arg[kMaxVarArgRegs]) { | ~~~^~~~~~~~~~~~~~~~~~~ In file included from dex_instruction.c:23: dex_instruction.h:278:32: note: previously declared as an ordinary array ‘u4[]’ {aka ‘unsigned int[]’} 278 | void dexInstr_getVarArgs(u2 *, u4[]); | ^~~~ cc1: all warnings being treated as errors make: *** [Makefile:56: dex_instruction.o] Error 1 make: Leaving directory '/vdexExtractor/src' [-] build failed

Not entirely sure what's going on with it there since while I may be a programmer(or at least wanted to be) I never got far enough to decipher stuff like this. I know I should have all the libraries to make this and I'm just trying to patch lineageos to support spoofing....

zhangyongfa888 commented 2 years ago

me too~ `gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION=\"dev-\" -c dex.c -o dex.o gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION=\"dev-\" -c dex_instruction.c -o dex_instruction.o dex_instruction.c:655:43: error: argument 2 of type ‘u4[kMaxVarArgRegs]’ {aka ‘unsigned int[kMaxVarArgRegs]’} declared as a variable length array [-Werror=vla-parameter] 655 | void dexInstr_getVarArgs(u2 code_ptr, u4 arg[kMaxVarArgRegs]) { | ~^~~~~ In file included from dex_instruction.c:23: dex_instruction.h:278:32: note: previously declared as an ordinary array ‘u4[]’ {aka ‘unsigned int[]’} 278 | void dexInstr_getVarArgs(u2 , u4[]); | ^~~~ cc1: all warnings being treated as errors make: *** [Makefile:56: dex_instruction.o] Error 1 make: Leaving directory '/cygdrive/e/vdexExtractor-master/src'

`

anestisb commented 2 years ago

What is the gcc / compiler version you're using?

And of course you can disable the werror flag until issue is resolved.

q1f3 commented 2 years ago

me too~ `gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION="dev-" -c dex.c -o dex.o gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION="dev-" -c dex_instruction.c -o dex_instruction.o dex_instruction.c:655:43: error: argument 2 of type ‘u4[kMaxVarArgRegs]’ {aka ‘unsigned int[kMaxVarArgRegs]’} declared as a variable length array [-Werror=vla-parameter] 655 | void dexInstr_getVarArgs(u2 code_ptr, u4 arg[kMaxVarArgRegs]) { | ~^~~~~ In file included from dex_instruction.c:23: dex_instruction.h:278:32: note: previously declared as an ordinary array ‘u4[]’ {aka ‘unsigned int[]’} 278 | void dexInstr_getVarArgs(u2 , u4[]); | ^~~~ cc1: all warnings being treated as errors make: *** [Makefile:56: dex_instruction.o] Error 1 make: Leaving directory '/cygdrive/e/vdexExtractor-master/src'

  • echo '[-] build failed' [-] build failed
  • exit 1

`

delete "-Werror" from makefile