【问题标题】:Error when running program with sharing library使用共享库运行程序时出错
【发布时间】:2011-11-23 19:46:25
【问题描述】:

有这样的代码:

#include <cstdlib>
#include <clang-c/Index.h>

using namespace std;

int main(int argc, char** argv)
{
    CXIndex Index = clang_createIndex(0, 0);
    CXTranslationUnit TU = clang_parseTranslationUnit(Index, 0, argv, argc, 0, 0, CXTranslationUnit_None);
    for (unsigned I = 0, N = clang_getNumDiagnostics(TU); I != N; ++I)
    {
        CXDiagnostic Diag = clang_getDiagnostic(TU, I);
        CXString String = clang_formatDiagnostic(Diag,
                clang_defaultDiagnosticDisplayOptions());
        fprintf(stderr, "%s\n", clang_getCString(String));
        clang_disposeString(String);
    }
    clang_disposeTranslationUnit(TU);

    clang_disposeIndex(Index);

    return 0;
}

它使用以下标志编译:

g++ main.cpp -g -fno-rtti `llvm-config --cxxflags --ldflags --libs` -lclang -o main

但是当我想运行 main 时:

./main

然后出现以下错误:

./main: error while loading shared libraries: libclang.so: cannot open shared object file: No such file or directory

但是:

$ sudo find / -name libclang.so
/usr/local/lib/libclang.so

图书馆似乎就位。如何运行这个程序?

【问题讨论】:

    标签: c++ ubuntu shared-libraries


    【解决方案1】:

    ldconfig 创建必要的链接并缓存到最新的 在命令指定的目录中找到的共享库 行,在文件 /etc/ld.so.conf 和受信任的目录中 (/lib 和 /usr/lib)

    尝试运行/sbin/ldconfig,如果不起作用,请尝试在文件/etc/ld.so.conf 中附加“/usr/local/lib”,然后运行/sbin/ldconfig

    命令:

    1. 运行以下命令,然后再次尝试编译/运行

      /sbin/ldconfig

    2. 如果这不起作用,请执行此操作,然后再次尝试编译/运行

      echo "/usr/local/lib" >> /etc/ld.so.conf /sbin/ldconfig

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2019-11-27
      • 2015-03-02
      相关资源
      最近更新 更多