• 解决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) 观察输出结果是否与预想的相符。

  • 相关阅读:
    结对编程作业
    4组-Alpha冲刺-2/6
    4组-Alpha冲刺-1/6
    结对编程作业
    4组 团队展示
    python多进程遇到的问题和解决
    GNS3第一次ping通
    前缀表达式计算(栈的使用)
    欧拉筛法(线性筛)素数
    拓扑排序
  • 原文地址:https://www.cnblogs.com/phoenix-route/p/3641755.html
Copyright © 2020-2023  润新知