cmakelist 主要内容是
cmake_minimum_required(VERSION 3.16)
project(Test)
set(CMAKE_CXX_STANDARD 20)
add_subdirectory(Parser/antlr4-cpp-runtime)
add_executable(Test
main.cpp
Parser/TestLexer.h
Parser/TestLexer.cpp
)
target_link_libraries(Test antlr4_cpp_runtime)
用的是这个项目的 runtime,https://github.com/adeharo9/antlr4-cpp-runtime
add_subdirectory 之后在 cmake-build-debug/Parser/antlr4-cpp-runtime/runtime 下有一个静态库文件
但是最终链接的时候报错
main.cpp:9: undefined reference to `antlr4::ANTLRInputStream::ANTLRInputStream(std::basic_string_view<char, std::char_traits<char> >)' collect2: error: ld returned 1 exit status
只有两个cpp文件,编译成两个.o文件,然后链接一个静态库
为啥会找不到符号呢
我知道静态库链接的顺序问题