V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX  ›  问与答

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

  •  
  •   zxCoder · 2021 年 7 月 19 日 · 711 次点击
    这是一个创建于 1732 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    第 1 条附言  ·  2021 年 7 月 19 日

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

    为啥会找不到符号呢

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

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 00:23 · PVG 08:23 · LAX 17:23 · JFK 20:23
    ♥ Do have faith in what you're doing.