【问题标题】:re2 library loadingre2 库加载
【发布时间】:2012-01-09 13:29:17
【问题描述】:

我正在使用下面的代码来测试google的RE2库

int main()
{
  int r = RE2::FullMatch("hello", "h.*o");
  cout <<" match = " << r << endl;
  return 0;
}

我正在使用以下命令进行编译 -

g++ -lre2 -o retest retest.cc

它编译得很好,但是当我尝试使用 ./retest 运行重新测试时,它会抛出以下错误 -

error while loading shared libraries: libre2.so.0: cannot open shared object file: No such file or directory

我已经检查并且 libre2.so.0 库确实存在于 user/local/lib 目录和 re2/obj/so 目录中。那么为什么会出现这个错误我忘记添加一些细节?

【问题讨论】:

标签: c++ regex re2


【解决方案1】:

经典陷阱:

g++ -o retest retest.cc -lre2 

图书馆应该是最后一个

编辑说实话,我对没有链接错误感到惊讶。我会保留它以防您错过问题中的某些信息

【讨论】:

  • 可能是时候确保库在 ld 的路径中并重新运行 ldconfig。
  • @MichaelKrelin-hacker:可能+1。尽管在大多数系统上usr/local/lib 在 ldconfig 中并且 libre2 已打包
  • 我认为是的,跳过路径检查很可能是安全的,如果库是从源代码安装的 ldconfig 可能会有所帮助。
【解决方案2】:

运行 sudo ldconfig 成功了。

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2022-09-27
    • 1970-01-01
    • 2012-02-28
    • 2018-03-29
    • 2020-11-05
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多