antlr4 c++ не могу скомпилировать пример

Я даже не знаю, что конкретно еще надо указать, но компилятор не видит файлы, лежащие в папке exprlib. Я уже пробовал переместить файлы в папку рядом с main.cpp. Эти файлы генерируются через antlr4 Expr.g4 -Dlanguage=Cpp -o lib -visitor -no-listener и если с ошибками линковки самого antlr я разобрался, то тут я не знаю, что от меня требуется Флаги gcc:

-I/usr/local/include \
-I/usr/local/include/antlr4-runtime \
-I/usr/include/ \
-I/usr/include/antlr4-runtime/ \
-lantlr4-runtime -L/home/kotaz/prj/lang/lib

Код main.cpp

#include <iostream>

#include <antlr4-runtime.h>
#include "exprlib/ExprLexer.h"
#include "exprlib/ExprParser.h"

using namespace antlr4;

int main(int argc, const char* argv[]) {
    std::ifstream stream;
    stream.open("input.code");
    ANTLRInputStream input(stream);
    ExprLexer lexer(&input);
    CommonTokenStream tokens(&lexer);
    ExprParser parser(&tokens);
    return 0;
}

Ошибка

/usr/include/antlr4-runtime/atn/ATNState.h:73:26: предупреждение: атрибуты типов игнорируются, если тип уже определен [-Wattributes]
   73 |   class ANTLR4CPP_PUBLIC ATN;
      |                          ^~~
/usr/bin/ld: /tmp/ccRMtxWe.o: в функции «main»:
main.cpp:(.text+0x83): неопределённая ссылка на «ExprLexer::ExprLexer(antlr4::CharStream*)»
/usr/bin/ld: main.cpp:(.text+0xb9): неопределённая ссылка на «ExprParser::ExprParser(antlr4::TokenStream*)»
/usr/bin/ld: main.cpp:(.text+0xcd): неопределённая ссылка на «ExprParser::~ExprParser()»
/usr/bin/ld: main.cpp:(.text+0xeb): неопределённая ссылка на «ExprLexer::~ExprLexer()»
/usr/bin/ld: main.cpp:(.text+0x142): неопределённая ссылка на «ExprLexer::~ExprLexer()»
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

Ответы (0 шт):