Я пытаюсь написать программу, используя flex ++, однако каждый раз, когда я пытаюсь скомпилировать, я получаю сообщение об ошибке:
FlexLexer.h: нет такого файла или каталога
Однако этот заголовок находится во включаемой папке flex. У меня нет проблем при компиляции программ на lex для c, однако для c ++ с flex ++ я не могу найти способ.
Я уже загружал flex раз и не знаю, есть ли проблема с моей ОС или что-то в этом роде. Моя ОС — Windows 10.
Спасибо
Включение должно быть довольно простым, как только вы поймете, как это работает.
Давайте рассмотрим несколько разных способов включения файла:
#include "FlexLexer.h"
Кавычки говорят компилятору искать файл FlexLexer.h в той же папке, что и компилируемый файл. Вот и все, больше нигде не будет.
Теперь, если мы изменим кавычки в скобках:
#include <FlexLexer.h>
Это говорит компилятору сначала искать FlexLexer.h в той же папке, но затем, если он не найден, он также просматривает список включаемых путей, ищущих его там.
Предполагая, что вы используете VisualStudio, существует как системный список включаемых путей (см. Инструменты> Параметры> Проекты и решения> Каталоги VC ++), так и список проектов включаемых путей (щелкните правой кнопкой мыши Проект в обозревателе решений, Свойства> Каталоги VC ++ ). Оба этих списка пройдены.
Наконец, вы также можете добавить подкаталог квалификаций для включения, например:
#include "Win\FlexLexer.h"
или же
#include <Win\FlexLexer.h>
Как вы можете догадаться, он ищет путь в текущем каталоге в обоих примерах, а также в списке включенных путей в следующем примере. Независимо от первый Когда файл будет найден, поиск остановится, и компилятор будет его использовать. Поэтому будьте осторожны, если заголовки будут дублировать имена в разных библиотеках!
Других решений пока нет …