我想编译我的flex scanner.l
,以便从我的C / C ++项目中调用动态库。这样做的正确方法是什么?我是否可以在不同的线程中同时从我的C / C ++程序调用扫描仪?
答案 0 :(得分:2)
(问题在评论中回答。见Question with no answers, but issue solved in the comments (or extended in chat))
@Josh写道:
与使用编译器创建任何其他动态库的方式相同。
让你的其他程序调用lex.yy.c中定义的方法。当你去编译时,告诉gcc编译你的主程序和lex.yy.c.使它成为一个动态库似乎有点矫枉过正。
Flex可以生成一个可重入的解析器(对于多线程应用程序是安全的):
Flex manual如果您只想学习如何使用gcc创建共享库,快速谷歌搜索应该会产生很多好结果。如果您遇到特定问题,可以从那里进一步帮助您。