Ошибка при запуске программы lex в командной строке Windows 10 предыдущих ответов не помогла мне [дублировать]

Если вы хотите хлюпить каждый совершить в одном коммите (например, при первом выпуске проекта в первый раз), попробуйте:

git checkout --orphan <new-branch>
git commit
7
задан Timofei Davydik 16 April 2012 в 23:34
поделиться

5 ответов

Для ошибки: cannot find -lflx

В вашем изменении Makefile: LEXLIB = -lfl - LEXLIB =.

В противном случае удалите аргумент -lfl, где бы он ни находился.

0
ответ дан AsksAnyway 23 August 2018 в 20:26
поделиться

Я столкнулся с той же проблемой, и поэтому я проверил ее в Интернете и нашел решение путем workcaptchabypass опубликовано 3 июня 2011 г. 6:44 здесь

он сказал:

Вы можете добавить эту функцию вместо этого и скомпилировать нормально

yywrap()
{
}

И поэтому я поставил код в файле .lex перед основной функцией. После этого все получилось так:

3
ответ дан j0k 23 August 2018 в 20:26
поделиться

Если вы используете lex + yacc, вы можете удалить -lfl, если вы определяете функцию yywrap или, что еще лучше, если вы используете опцию noyywrap:

%option noyywrap
%%
 ...
%%
4
ответ дан JJoao 23 August 2018 в 20:26
поделиться

Чтобы скомпилировать lex-код, во-первых, вы должны установить flex на свой компьютер. Если да, то будет файл libfl.a. В моей машине я установил flex в 'C: \ GnuWin32 \ lib'

gcc lex.yy.c -L "C: \ GnuWin32 \ lib" -lfl

5
ответ дан Karthik 23 August 2018 в 20:26
поделиться

Я столкнулся с этой проблемой при переносе TXR в Windows с помощью MinGW.

MinGW имеет гибкую библиотеку для себя, но не экспортирует ее в среду.

См. здесь : http://lists.nongnu.org/archive/html/txr-users/2011-10/msg00001.html

Обходным путем является использование -L/usr/lib до -lfl. Но подумайте об этом: это взломать. Зачем? Поскольку путь /usr/lib/ принадлежит MinGW, время выполнения среды компиляции.

/usr/lib не там, где предполагается, что инструментальная цепочка должна найти библиотеки для создаваемой программы Windows (чего нет в путь к библиотеке!) [/ ​​g5]

То есть мы эффективно краем родную библиотеку машины сборки в задании кросс-компиляции.

Это похоже на то, что вы выполняли кросс-компиляцию, скажем, программу Fedora на Ubuntu и помогать себе в статической библиотеке Ubuntu в /usr/lib, которая отсутствует в перекрестной привязке Fedora (используя тот факт, что формат архитектуры и объектного файла бывает одинаковым).

Это определенно ошибка в том, как Flex «упакован» в MingW.

1
ответ дан Kaz 23 August 2018 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: