ozy/ToyJVM

make出现的问题

Closed this issue · 3 comments

1.直接make
mkdir -p build
mkdir -p dep
gcc -c -g -O0 -Iinclude src/heap.c -o build/heap.o
src/heap.c: 在函数‘hAlloc’中:
src/heap.c:16:5: 错误:只允许在 C99 模式下使用‘for’循环初始化声明
for (size_t mem=0; memtop; mem++){
^
src/heap.c:16:5: 附注:使用 -std=c99 或 -std=gnu99 来编译您的代码
2.修改makefile
CFLAGS = -g -O0 -std=c99 -I$(HDRDIR) #-DDEBUG=1
仍然报错
mkdir -p bin
gcc -lm -o bin/main build/heap.o build/machine.o build/stack.o build/frame.o build/javaClass.o build/field.o build/opcode.o build/constantPool.o build/main.o build/attribute.o build/printStream.o build/classFile.o build/stringBuilder.o
build/field.o:在函数‘getField_Info’中:
/root/ToyJVM/ToyJVM/src/field.c:12:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/field.c:15:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/field.c:18:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/field.c:21:对‘be16toh’未定义的引用
build/opcode.o:在函数‘read2Bytes’中:
/root/ToyJVM/ToyJVM/src/opcode.c:25:对‘be16toh’未定义的引用
build/opcode.o:在函数‘read4Bytes’中:
/root/ToyJVM/ToyJVM/src/opcode.c:30:对‘be32toh’未定义的引用
build/opcode.o:在函数‘read8Bytes’中:
/root/ToyJVM/ToyJVM/src/opcode.c:35:对‘be64toh’未定义的引用
build/constantPool.o:在函数‘cp_infoFromFile’中:
/root/ToyJVM/ToyJVM/src/constantPool.c:14:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:21:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:22:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:26:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:31:对‘be32toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:37:对‘be64toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:42:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:43:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:47:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:55:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/constantPool.c:59:对‘be16toh’未定义的引用
build/constantPool.o:/root/ToyJVM/ToyJVM/src/constantPool.c:64: 跟着更多未定义的参考到 be16toh
build/attribute.o:在函数‘getAttribute_Info’中:
/root/ToyJVM/ToyJVM/src/attribute.c:11:对‘be32toh’未定义的引用
build/attribute.o:在函数‘getCode_AttributeFromAttribute_info’中:
/root/ToyJVM/ToyJVM/src/attribute.c:41:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/attribute.c:45:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/attribute.c:49:对‘be32toh’未定义的引用
build/classFile.o:在函数‘classFromFile’中:
/root/ToyJVM/ToyJVM/src/classFile.c:30:对‘be32toh’未定义的引用
/root/ToyJVM/ToyJVM/src/classFile.c:33:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/classFile.c:36:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/classFile.c:39:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/classFile.c:65:对‘be16toh’未定义的引用
/root/ToyJVM/ToyJVM/src/classFile.c:68:对‘be16toh’未定义的引用
build/classFile.o:/root/ToyJVM/ToyJVM/src/classFile.c:71: 跟着更多未定义的参考到 be16toh

os version: 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
gcc version: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)

ozy commented

Can you check d4b6a38 to ensure this fixes your problem?

Can you check d4b6a38 to ensure this fixes your problem?

Yes, it works. Thanks a lot.