【问题标题】:c++ Shared library error after code migration to CentOS代码迁移到CentOS后c++共享库报错
【发布时间】:2014-05-27 07:13:49
【问题描述】:

我以前在 ubuntu 上工作。我的 c++ 代码在那里执行得很好,然后我切换到 Centos 6.3 并以与编译它相同的方式编译我的代码 ubuntu 使用 g++。现在,在 centos 上运行代码的可执行文件时,出现以下错误。

这是我在 centos 上制作可执行文件的方法

g++ tcp.cpp -o tcp -lcrafter

错误:

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

编辑:

它使用以下命令运行,但在 Ubuntu 中无需提供路径:

gcc -o tcp tcp.c -L/usr/local/lib -lfoo -Wl,-rpath=/usr/local/lib

如何在不每次都添加路径的情况下做到这一点?

【问题讨论】:

  • ldd -r tcp 说什么?以防万一,您没有在 tcp.cpp 中使用 dlopen/sym/close?

标签: c++ centos libpcap


【解决方案1】:

您应该在包含此库的目录的 LD_LIBRARY_PATH 路径中写入:LD_LIBRARY_PATH = /path/to/your/library

【讨论】:

  • 你怎么知道它不在系统路径或不在dlopen/sym/close?
【解决方案2】:

对已接受答案的小补充。您可以在 libcrafter 的目录中调用以下 Linux 命令:

sudo ldconfig

ldconfig 实用程序creates 到目录中找到的最新共享库的必要链接和缓存

【讨论】:

    猜你喜欢
    • 2014-03-22
    • 2014-10-13
    • 2020-04-18
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多