有这样的代码:
#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
图书馆似乎已经到位。如何运行这个程序?
答案 0 :(得分:4)
ldconfig创建必要的链接并缓存到最新的 在命令中指定的目录中找到的共享库 在文件/etc/ld.so.conf和受信任的目录中 (/ lib和/ usr / lib)
尝试运行/sbin/ldconfig
然后如果不起作用,请尝试使用“/ usr / local / lib”附加文件/etc/ld.so.conf,然后运行/sbin/ldconfig
命令:
运行以下命令,然后再次尝试编译/运行
/ sbin目录/ LDCONFIG
如果不起作用,请执行此操作然后再次尝试编译/运行
echo“/ usr / local / lib”&gt;&gt; /etc/ld.so.conf中 / sbin目录/ LDCONFIG