Using Flex in Visual Studio 6 (VC++)
This tutorial is for users who are already familiar with Visual Studio
VC++ and flex.
- Create a new workspace and add your lex file (ie lexer.l)
- Save the following files in the same directory as your workspace: flex.exe
, libfl.lib, libfl.a
- Go to Project/Settings/ and select your project in the explorer window
at the left.
- Select the Link tab. In the "Object/library modules" section,
append libfl.lib and libfl.a to the end of the list.
- 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.
- Return to the left hand explorer window and expand your project. Select
your lex file (ie lexer.l)
- Under the "General" tab, select Always use custom build step.
- 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
- Build your project once (Control-F5). You should get the message "Cannot
- The previous step should create a file called lex.yy.c in your workspace
directory. Add this file to your project.
- 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.
- 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.
- 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