错误:
ld: library not found for -lfl
意味着你错过了属于弹性库 https://en.wikipedia.org/wiki/Flex_(lexical_analyser_generator).
要检查您是否已经安装了 Flex 库,您可以使用locate 来查看它:
locate libfl.a
OSX
如果你没有它,你可以安装 install flex (如果你正在使用brew http://brew.sh/):
brew install flex
如果仍然遇到问题,您可以尝试在 make 期间手动传递以下变量,例如:
LDFLAGS="-L/usr/local/Cellar/flex/*/lib" CPPFLAGS="-I/usr/local/Cellar/flex/*/include" make -f "Makefile"
or:
MAKEFLAGS="-j8 -L/usr/local/Cellar/flex/*/lib -I/usr/local/Cellar/flex/*/include" make -f "Makefile"
最终通过修改DYLD_FALLBACK_LIBRARY_PATH
环境。
执行可以看到是通过了哪些环境brew --env
.
注意:确保根据您的环境更改路径。
Related:
- Dylib 和 OS X https://stackoverflow.com/questions/10820981/dylibs-and-os-x
Linux
在大多数流行的 Linux 发行版上,您可以通过以下方式安装它:
apt-get install flex
Related:
- RHEL 上缺少 libfl.a 文件 http://www.linuxquestions.org/questions/linux-software-2/libfl-a-file-missing-on-rhel-709005/
OS X(自制)
或者使用 Homebrew 安装 Shakespeare:
brew install shakespeare -v
哪个应该检测您的所有依赖项。