解决lex.yy.c文件在vs2012下编译生成exe

编译课上面,老师要求用flex把 .l 文件生成 .c 文件,然后和库文件libfl.lib放到同一个vc6工程里面生成一个exe文件

可是现在我用的win8系统,对vc6不支持。。

所以看了一下在vs2012下生成exe的方法

首先,把生成的.c文件放到工程里面

源文件 添加 现有项 找到 libfl.lib 加进去

在c代码开头加上

#pragma comment(lib, "libfl.lib")
#pragma comment(linker, "/NODEFAULTLIB:LIBC.lib")

另一种方法: 
修改项目属性:属性->链接器->输入下:附加依赖项加入libfl.lib的路径;忽略特定库加入:LIBC.lib。

 

然后,在c代码里面ctrl + F找一下fileno,改成_fileno,注意加了个下划线

ctrl + F5可以跑了。。

 

另外

附上整个编译过程

(一) 目录介绍

在本实验目录中,包括两个子目录。

1、子目录 flex

它包含了 flex.exe, flex.hlp, libfl.lib 三个文件,另外还有一个例子文件 example.l 及该例子生成的 lex.yy.c。

2、子目录 lex_yy

这个目录是为 lex.yy.c 建立的一个项目(使用 VC6)。它包含有 lex.yy.c, libfl.lib (拷贝自目录 flex),以及相关的项目文件。在debug 子目录中是已经生成的 词法分析器 lex.yy.exe, 利用它可以进行词法分析。

(二)实验示范

1、编写 lex 程序,如 example.l 文件所示
2、调用 flex 以生成 lex.yy.c, DOS命令格式: flex < example.l
3、新建一个目录(如 lex_yy), 把lex.yy.c 及 libfl.lib 拷贝到该目录下。
4、用VC6打开lex.yy.c,并生成一个新项目。
5、编译并链接libfl.lib, 得到词法分析器 debug/ley.yy.exe。
6、验证词法分析器的功能:
1)编写一输入文件(如lex_yy/debug/12.txt)
2) 调用 lex.yy.exe(DOS 命令格式 lex.yy.exe < 12.txt )
3) 观察输出结果是否与预想的相符。

 

posted on 2014-04-02 22:14  Phoenix_  阅读(1055)  评论(0编辑  收藏  举报