V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zxCoder
V2EX  ›  问与答

c++ antlr4 链接静态库报错 undefined reference

  •  
  •   zxCoder · Jul 19, 2021 · 756 views
    This topic created in 1754 days ago, the information mentioned may be changed or developed.

    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

    Supplement 1  ·  Jul 19, 2021

    只有两个cpp文件,编译成两个.o文件,然后链接一个静态库

    为啥会找不到符号呢

    我知道静态库链接的顺序问题

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3444 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 12:03 · PVG 20:03 · LAX 05:03 · JFK 08:03
    ♥ Do have faith in what you're doing.