c php antlr,用C语言编译Antlr3语法

我一直在尝试学习antlr,并让它与c输出代码一起使用

this

教程(另请参见

this

问题)。我成功地让antlr生成lexer和parser作为C源,但是我不能让它们在mac os x snow leopard(i686-apple-darwin10-gcc-4.2.1)上使用gcc进行编译。下面是我试图编译“simpleCalcLexer.c”时的结果。

dyn-72-33-132-199:Desktop bf$ gcc -o lexer SimpleCalcLexer.c

Undefined symbols:

"_main", referenced from:

start in crt1.10.6.o

"_antlr3LexerNewStream", referenced from:

_SimpleCalcLexerNewSSD in ccjXa6NU.o

ld: symbol(s) not found

collect2: ld returned 1 exit status

simpleCalcLexer.c文件没有在任何地方引用“main”(也没有定义),而是引用解析器

定义它,所以我试图编译它:

dyn-72-33-132-199:Desktop bf$ gcc -o parser SimpleCalcParser.c

Undefined symbols:

"_antlr3CommonTokenStreamSourceNew", referenced from:

_main in ccn8ZVhk.o

"_antlr3ParserNewStream", referenced from:

_SimpleCalcParserNewSSD in ccn8ZVhk.o

"_SimpleCalcLexerNew", referenced from:

_main in ccn8ZVhk.o

"_antlr3AsciiFileStreamNew", referenced from:

_main in ccn8ZVhk.o

ld: symbol(s) not found

collect2: ld returned 1 exit status

所以有几个问题:

1)我做错了什么?我很确定库是被找到的,因为代码中还有其他的antlr函数和定义。我打电话给海湾合作委员会是不是打错了?(我以前从未在命令行上编译过这么复杂的东西。)

2)什么是

ccn8ZVhk.o

?我可以知道它是一个对象代码文件,但在我的系统中找不到它(两者都是

locate

mdfind

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值