gpt4 book ai didi

c - 编译 Neko VM OS X 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:40 25 4
gpt4 key购买 nike

我正在尝试编译 Neko VM在 Mac OS X (10.5.7) 上使用 GCC 4.01 我完全卡住了,因为它在编译时停止说:

vm/threads.c:202: error: conflicting types for 'neko_thread_register'
vm/neko_vm.h:37: error: previous declaration of 'neko_thread_register' was here

我尝试用谷歌搜索这个,有些人说这是因为缺少“原型(prototype)”,有些人说这是因为 header 包含多次完成,但我真的找不到任何一个。

threads.c:202中受影响的行看起来像这样:

EXTERN bool neko_thread_register( bool t ) {

受影响的行在neko_vm.h:37看起来像这样:

EXTERN bool neko_thread_register( bool t );

除了其中一个是另一个的实现之外,我看不出它们之间有任何区别。

我使用的编译器命令是:

cc -Wall -O3 -v -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -arch i386 -L/usr/local/lib -L/opt/local/lib -I/opt/local/include  -o vm/threads.o -c vm/threads.c

我很想知道我在这里可以做什么,我真的不知道从这里去哪里。

可以找到我正在尝试编译的 Neko 代码的镜像 here .

谢谢!

最佳答案

您是否尝试过单独编译该文件并输出预处理版本?可能是范围或链接宏在头文件和实现文件之间的某处被修改——“bool”类型也是如此,它通常是由系统头文件定义的宏。

根据此处的 GCC 4.2 文档,您应该需要将 -E 标志添加到上面的编译行,并且您应该将 -o vm/threads.o 更改为 - o vm/threads.i 因此创建了一个具有正确扩展名的文件(.i 本质上是指“预处理文件”)。

关于c - 编译 Neko VM OS X 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com