我将把原先为Unix编写的C项目移植到Windows。目前为止,我已经成功编译,但无法构建。出现的问题是,一些在头文件中声明的函数在yacc文件中定义。因此,我遇到了以下错误:
error LNK2001: unresolved external symbol function_name
我正在将 .y 和 .l 文件添加到项目的源目录中。我认为我无法将 yacc 文件移植到 Windows 版本,或者我做了一些愚蠢的事情。我在网上搜索了它,但找不到合适的教程。你能告诉我怎么做吗?
- 我该如何将 .y 或 .l 文件添加到项目中。
- 我该如何使这些文件兼容 Windows 系统?
- 我该如何将它们与其他目标文件链接起来?
编辑
我尝试使用 flex.exe 将 .l 文件更改为 .yy.c 文件。以下是命令:
c:\> flex.exe name.l
假设flex.exe和name.l都在C;>
中。我将所有这些文件.l .y(之前在Unix系统中用于解析) .yy.c(对应的Windows Yacc文件)
加载到先前存在的项目的解决方案中。一旦编译,我会得到以下结果:
Can't read the header file parserheaderfile.h
这是需要在Unix系统中由bison
生成的头文件。所以我认为我无法使bison
兼容windows
。请告诉我如何解决这个问题?
提前致谢。