找不到-lfl的库

tji*_*nio 21 c++ macos flexc++

我正在使用flexbison构建一个我从Github克隆的简单计算器项目.

但在我输入make终端后,我收到以下消息:

gcc -o calc calc.tab.c lex.yy.c -lfl
calc.y:48:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
main() {
^~~~
1 warning generated.
ld: library not found for -lfl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [calc] Error 1
Run Code Online (Sandbox Code Playgroud)

我怎么能解决这个问题?

waT*_*eim 51

让我猜一下,尝试在OS/X上使用flex?

尝试-ll而不是-lfl

在OS/X上使用Flex

所以,OS/X上的flex库名称由于某种原因只是任意不同.OS/X并不完全是Linux,但它非常接近.你有一些选择.

  1. 您可以只为OS/X创建一个单独的构建系统和源文件.当然苹果可能会喜欢推动XCode,Objective-C和互操作性不强.

  2. 您可以构建vs Linux,然后使用Mac PortsHomebrew.

  3. 您可以使用autotools创建项目.这不是一个很棒的链接,学习这个系统很粗糙,但对于Linux肯定是标准的.这实际上是有效的,我发现如果你有耐心,OS/X足够接近基于autotools的构建将对它起作用.

  4. 最近,我已经转向Cocoapods,我相信这是尝试加入开源社区和XCode.它有点1和3种类型,强调模块化外部源并将其编译成.app(通过Xcode).