Using Flex in Visual Studio 6 (VC++)

 

This tutorial is for users who are already familiar with Visual Studio VC++ and flex.

  1. Create a new workspace and add your lex file (ie lexer.l)

  2. Save the following files in the same directory as your workspace: flex.exe , libfl.lib, libfl.a

  3. Go to Project/Settings/ and select your project in the explorer window at the left.

  4. Select the Link tab. In the "Object/library modules" section, append libfl.lib and libfl.a to the end of the list.

  5. If your lex file reads input from the command line, (such as a filename like inputfile.txt), then select the Debug tab and add the command line parameters to the "Program Arguments" field.

  6. Return to the left hand explorer window and expand your project. Select your lex file (ie lexer.l)

  7. Under the "General" tab, select Always use custom build step.

  8. Under the "Custom Build" tab, place flex followed by the name of your lexer file into the "Commands" box (ie flex lexer.l)
    Then place this text into the "Outputs" box:      lex.yy.c

  9. Build your project once (Control-F5). You should get the message "Cannot execute program".

  10. The previous step should create a file called lex.yy.c in your workspace directory. Add this file to your project.

  11. I suggest you add the input file (if your lex program requires one) to your project as well so that you can easily edit it, but this is not required.

  12. If you get an error that looks something like:

    lex.yy.obj : error LNK2001: unresolved external symbol _yywrap
    Debug/compiler.exe : fatal error LNK1120: 1 unresolved externals

    This means you are not linking in the library files correctly. Check step 2, 3, and 4 again.

  13. The next time you build (Control-F5), your project should run. If it doesn't, send me a message and I'll see if I can help.