Компиляция flex-файла в dll - PullRequest
0 голосов
/ 08 апреля 2010

У меня есть лексер, созданный с помощью flex (cygwin). Обычно я компилирую его в файл .exe.

Для самого нового проекта мне нужен лексер для использования в более крупной программе на C #, работающей в Windows XP. Конечно, я могу выполнить файл, используя System.Diagnostics.Process. Но это не лучшее решение для меня, так как я хочу, чтобы эта программа работала на нескольких машинах.

Как я могу создать dll под cygwin с исходным кодом лексера?

Заранее спасибо ... Szpilona

1 Ответ

1 голос
/ 08 апреля 2010

Flex создает исходный файл на C или C ++ с функцией yylex ().

Запустите flex для вашей грамматики (файл .l), чтобы создать файл .c или .cpp, затем скомпилируйте этот файл с помощью gcc -c, чтобы создать объектный файл, или скомпилируйте его с помощью gcc -shared, чтобы создать библиотеку .so. .

flex toy.l
gcc -shared toy.lexer.c

Flex или Flex ++ создадут лексер, который можно скомпилировать с cywgin или без него. Вы также можете использовать MinGW или Visual C ++.

...