У меня есть этот файл C ++ (назовем его main.cpp
):
#include <string>
#include "main.y.c"
void f(const std::string& s) {
yy_switch_to_buffer(yy_scan_string(s.c_str()));
yyparse();
}
Файл зависит от main.y.c
, который должен быть сгенерирован заранее с помощью bison
util. Другими словами, я не могу скомпилировать файл main.c
, если я забуду запустить bison main.y
до него. И это нормально, я так хочу. Сейчас я пытаюсь собрать файл .d
из Makefile
, используя эту команду:
$ c++ -MM main.c > main.d
main.cpp:2:10: error: main.y.c: No such file or directory
Я терплю неудачу здесь, поскольку main.y.c
еще не готов. Я думаю, что я должен как-то процитировать мою директиву #include
в файле main.c
, чтобы сделать ее невидимой для c++ -MM
процесса.