Библиотека не найдена для -lfl

Я использовал flex и bison для создания простого проекта калькулятора, который я клонировал из 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

Как я могу решить эту проблему?

Ответ 1

Позвольте мне угадать, пытаясь использовать flex на OS/X?

Попробуй -ll вместо -lfl

Использование Flex в OS/X

Итак, имя библиотеки flex на OS/X по какой-то причине просто произвольно отличается. OS/X не совсем Linux, но она довольно близка. У вас есть несколько вариантов.

  • Вы можете просто иметь отдельную систему сборки и исходные файлы для OS/X. Конечно, Apple может это понравиться с их нажатием XCode, objective-C и не очень функциональной совместимостью.

  • Вы можете создавать vs Linux, а затем взаимодействовать с Mac-портами и Homebrew.

  • Вы можете создать свой проект, используя autotools. Это не удивительная связь, изучая эту систему, но это стандартная вещь для Linux. Это действительно сработает, я нахожу, что если у вас хватит терпения, OS/X достаточно близко, чтобы на нем работали сборки на основе autotools.

  • В последнее время меня включили в Cocoapods, который я считаю попыткой присоединиться к сообществу с открытым исходным кодом и XCode. Это примерно половина 1 и 3 сортировки с акцентом на модуляцию внешнего источника и его компиляцию в .app(через Xcode).