I'm trying to use the conan package manager with cmake to use antlr4. my includes in main.cpp
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <cxxopts.hpp>
#include <filesystem>
#include <antlr4-runtime/antlr4-runtime.h>
#include "lexer/CrocLexer.h"
my CMakeLists.txt
cmake_minimum_required(VERSION 3.16.3)
project(crocc)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
add_executable(crocc main.cpp lexer/CrocLexer.cpp)
set_target_properties(crocc PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(crocc ${CONAN_LIBS})
and the error
[ 33%] Building CXX object CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o
[ 66%] Linking CXX executable bin/crocc
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o: in function `(anonymous namespace)::CrocLexerStaticData::CrocLexerStaticData(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)':
CrocLexer.cpp:(.text+0x15e): undefined reference to `antlr4::dfa::Vocabulary::Vocabulary(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x38): undefined reference to `antlr4::Recognizer::getRuleIndexMap[abi:cxx11]()'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x58): undefined reference to `antlr4::Recognizer::getErrorHeader[abi:cxx11](antlr4::RecognitionException*)'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x60): undefined reference to `antlr4::Recognizer::getTokenErrorDisplay[abi:cxx11](antlr4::Token*)'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0xf8): undefined reference to `antlr4::Lexer::getSourceName[abi:cxx11]()'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x140): undefined reference to `antlr4::Lexer::getText[abi:cxx11]()'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x148): undefined reference to `antlr4::Lexer::setText(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x1a8): undefined reference to `antlr4::Lexer::getErrorDisplay(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: CMakeFiles/crocc.dir/lexer/CrocLexer.cpp.o:(.data.rel.ro._ZTV9CrocLexer[_ZTV9CrocLexer]+0x200): undefined reference to `non-virtual thunk to antlr4::Lexer::getSourceName[abi:cxx11]()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/crocc.dir/build.make:99: bin/crocc] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/crocc.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
why is this happening? what did I do wrong?
Best regards