gpt4 book ai didi

compiler-errors - 如何在编译时修复 -lfl 丢失的 ld 库?

转载 作者:行者123 更新时间:2023-12-04 04:17:57 25 4
gpt4 key购买 nike

我正在尝试翻译我的 .spl文件转换为 C 文件(因为没有编译器)。我有一个示例“Hello World”.spl 文件,我已经下载了 Shakespeare Programming Language .tar并提取它,但我不知道下一步该怎么做。我似乎无法在任何文档中找到说明。任何人都可以帮忙吗?

编辑:

当我输入 make -f "Makefile" ,我得到以下输出:

bison --verbose -d grammar.y
gcc -O2 -Wall -c grammar.tab.c
gcc -O2 -Wall -c makescanner.c
gcc makescanner.o -O2 -Wall -o makescanner
./makescanner include > scanner.l
flex -Cem -t scanner.l > scanner.c
scanner.l:600: warning, rule cannot be matched
gcc -O2 -Wall -c scanner.c
<stdout>:5823: warning: ‘yyunput’ defined but not used
gcc -O2 -Wall -c strutils.c
gcc grammar.tab.o scanner.o strutils.o -O2 -Wall -lfl -o spl2c
ld: library not found for -lfl
collect2: ld returned 1 exit status
make: *** [spl2c] Error 1

最佳答案

错误:

ld: library not found for -lfl



意味着您错过了属于 flex library 的库.

要检查您是否已经安装了 flex 库,您可以使用 locate 来管理它:
locate libfl.a

OSX

如果你没有它,你可以安装 install flex (如果你使用 brew ):
brew install flex

如果您仍然遇到问题,您可以尝试在 make 期间手动传递以下变量,例如:
LDFLAGS="-L/usr/local/Cellar/flex/*/lib" CPPFLAGS="-I/usr/local/Cellar/flex/*/include" make -f "Makefile"

或者:
MAKEFLAGS="-j8 -L/usr/local/Cellar/flex/*/lib -I/usr/local/Cellar/flex/*/include" make -f "Makefile"

最终通过修改 DYLD_FALLBACK_LIBRARY_PATH环境。

执行 brew --env 可以看到通过了哪个环境.

注意:确保您将根据您的环境更改路径。

有关的:
  • Dylibs and OS X

  • Linux

    在大多数流行的 Linux 发行版上,您可以通过以下方式安装它:
    apt-get install flex

    有关的:
  • libfl.a file missing on RHEL


  • OS X(自制软件)

    或者使用 Homebrew 安装莎士比亚:
    brew install shakespeare -v

    这应该检测您的所有依赖项。

    关于compiler-errors - 如何在编译时修复 -lfl 丢失的 ld 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050362/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com