You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下C++使用Google-RE2出现未定义引用错误求助

解决Google RE2编译链接错误的方案

错误原因

你遇到的undefined reference是链接阶段的问题——编译器能找到RE2的头文件,但链接器找不到实现RE2函数的库文件。

解决步骤

1. 正确的编译命令

编译时需要显式链接RE2库(以及它依赖的Abseil库),用g++的话,命令格式如下:

g++ -o your_program main2.cpp -lre2

如果RE2安装在非系统默认路径(比如/usr/local/lib之外),需要用-L指定库的路径:

g++ -o your_program main2.cpp -L/path/to/re2/lib -lre2

2. 代码小优化(可选)

你的测试代码里s和t变量声明了但没使用,虽然不影响编译,但可以调整成支持捕获匹配内容的形式,比如:

#include <iostream>
#include <re2/re2.h>

using namespace re2;
using namespace std;

int main()
{
    string match_content;
    // 捕获括号内的匹配内容到变量中
    if(RE2::FullMatch("hello", "h(.*)o", &match_content))
        cout << "匹配成功: " << match_content << endl;
    else
        cout << "Not match." << endl;
    return 0;
}

验证安装(如果上述命令仍报错)

如果还是出现链接错误,检查RE2是否正确安装:

  • 确认/usr/lib或/usr/local/lib下存在libre2.so文件
  • 确认头文件re2/re2.h在/usr/include或/usr/local/include目录下

内容的提问来源于stack exchange,提问作者Mostafa Etemadian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:07:05