2015-10-08 4 views
-1

Я пытаюсь написать программу с помощью гибкого ++, однако каждый раз, когда я пытаюсь скомпилировать я получаю сообщение об ошибке:FlexLexer.h: Нет такого файла или каталога прогибается ++

FlexLexer.h: Нет такого файла или Справочник

Однако этот заголовок находится в прилагаемой папке flex. У меня нет проблем с компиляцией программ lex для c, однако для C++ с flex ++ я не могу найти способ. Я уже скачал flex разное время, и я не знаю, есть ли проблемы с моей ОС или что-то в этом роде. Моя ОС - Windows 10. Спасибо

+0

Недостаточная информация. Включите ли вы путь к папке flex в командной строке компилятора? – user4581301

+0

Привет, спасибо за ваш комментарий. Ну, я использую только команды: flex ++ ex.l, а затем g ++ lex.yy.cc. Однако я не знаю, как указать путь к папке flex для компилятора. –

+0

дать 'g ++ -I <путь к flex include folder> lex.yy.cc' a try – user4581301

ответ

0

Включение должно быть довольно простым, как только вы поймете, как это работает.

Давайте посмотрим на некоторые различные способы вы можете включить файл:

#include "FlexLexer.h" 

Кавычки говорят компилятору искать файл FlexLexer.h в той же папке, что и файл компилируется. То есть, он больше нигде не будет выглядеть.

Теперь, если мы изменим кавычки в скобках:

#include <FlexLexer.h> 

Это говорит компилятору искать FlexLexer.h в той же папке, но потом, если он не найден, он будет идти по списку включая пути, которые там ищут.

Предполагая, что вы используете VisualStudio, есть системный список включенных путей (см. Инструменты> Параметры> Проекты и решения> Каталоги VC++) и список проектов включенных путей (щелкните правой кнопкой мыши по проекту в обозревателе решений, Свойства> Каталоги VC++). Оба этих списка пройдены. подкаталог

Наконец, вы можете также добавить квалифицируется к включают, например:

#include "Win\FlexLexer.h" 

или

#include <Win\FlexLexer.h> 

Как вы можете догадаться, он ищет пути при любом текущем каталоге в оба примера, а также список включенных путей в следующем примере. Вне зависимости от того, найден ли файл , поиск будет остановлен, и компилятор будет использовать его. Поэтому будьте осторожны, если заголовки будут дублировать имена в разных библиотеках!

+0

Привет, есть ли способ добавить FlexLexer.h в путь include без использования Visual Studio? Проблема в том, что у меня ее нет, и я просто использую Windows cmd. Благодарю. –

Смежные вопросы