c++ - libthrift-0.9.1.so : cannot open shared object file: No such file or directory

标签 c++ linux compilation thrift

我已经使用 git 存储库安装了 thrift 0.9.1。 在构建 thrift 之后,我启动了预编译的 cpp 服务器和 php 客户端。这个预编译示例运行良好。

现在我正尝试按照本教程 (http://wiki.apache.org/thrift/ThriftUsageC++) 编译我自己的 cpp 服务器。 我用过:

g++ -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -Wall -I/usr/local/include/thrift *.cpp -L/usr/local/lib -lthrift -o something

编译无错误运行的服务器。

当我通过键入 ./something 执行服务器时,加载共享库时出现 错误:libthrift-0.9.1.so:无法打开共享对象文件:没有这样的文件或目录

在lib目录下有以下文件:

  • libthrift.a
  • libtrift.la
  • libthrift.so
  • libtthrift-0.9.0.so
  • libtthrift-0.9.1.so

还有libthrift_c.glib.alibthriftnb.alibthriftz.a以及属于它们的文件,但是我认为它们对于这个错误并不重要。

有人知道这是怎么回事吗?

感谢任何帮助

最佳答案

当使用动态库(-lthrift)时,Linux 搜索包含libthrift.so 的目录在环境变量中的目录中 LD_LIBRARY_PATH , 您必须确保包含 libthrift.so 的目录在环境变量中正确设置 LD_LIBRARY_PATH .

关于c++ - libthrift-0.9.1.so : cannot open shared object file: No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23991830/

相关文章:

c++ - 改变其他类qt的对象

c++ - std::set 是否在内存中连续存储对象?

java - 将遗留 Web 应用程序转换为 WAR 文件

c - 定义一个C程序编译后要修改的地址

C++ LOBYTE。请详细解释一下?

c++ - 如何在 C++ 中移动字符数组的某些位置

linux - 二进制文件中的 .bash_history

linux - Ubuntu 14.04 找不到包依赖

programming-languages - 如何结合不同的编程语言

java - 找到可以编译代码的最旧的java版本