将应用程序复制到另一台计算机,找不到共享库

发布于 2024-09-16 12:09:50 字数 1171 浏览 2 评论 0原文

gcc 4.4.3 c89 linux

我正在使用 log4c 并将 inc 和 lib 放在以下目录中

/home/jeff/projects/gateway/tools/log4c/inc
/home/jeff/projects/gateway/tools/log4c/lib

在我的 Makefile 中,我指定了 inc 和 lib 路径:

INC_PATH = -I tools/log4c/inc
LIB_PATH = -L tools/log4c/lib
LIBS = -llog4c

在我的 lib 目录中,我有以下共享库:

lrwxrwxrwx 1 root root     17 2010-08-26 15:57liblog4c.so -> liblog4c.so.3.1.0
lrwxrwxrwx 1 root root     17 2010-08-26 15:57 liblog4c.so.3 -> liblog4c.so.3.1.0
-rw-r--r-- 1 root root 100180 2010-08-26 15:55 liblog4c.so.3.1.0

我在我的上编译我的应用程序开发机,然后将二进制文件和工具目录复制到测试机

因此,当我在测试机上执行二进制文件时,出现以下错误:

./app: error while loading shared libraries: liblog4c.so.3: cannot open shared object file: No such file or directory

但是,在具有相同目录结构的开发机上一切正常,即

开发机:

/projects/gateway/app
/projects/gateway/tools/log4c/inc
/projects/gateway/tools/log4c/lib

测试机:

/projects/gateway/app
/projects/gateway/tools/log4c/inc
/projects/gateway/tools/log4c/lib

所以我想知道为什么它找不到共享库。

非常感谢您的任何建议,

gcc 4.4.3 c89 linux

I am using log4c and have placed the inc and lib in the following directories

/home/jeff/projects/gateway/tools/log4c/inc
/home/jeff/projects/gateway/tools/log4c/lib

In my Makefile I have specified the inc and lib path:

INC_PATH = -I tools/log4c/inc
LIB_PATH = -L tools/log4c/lib
LIBS = -llog4c

In my lib directory I have the following shared libraries:

lrwxrwxrwx 1 root root     17 2010-08-26 15:57liblog4c.so -> liblog4c.so.3.1.0
lrwxrwxrwx 1 root root     17 2010-08-26 15:57 liblog4c.so.3 -> liblog4c.so.3.1.0
-rw-r--r-- 1 root root 100180 2010-08-26 15:55 liblog4c.so.3.1.0

I compile my application on my development machine, then copy the binary and tools directory to the test machine

So when I execute binary on the test machine I get the following error:

./app: error while loading shared libraries: liblog4c.so.3: cannot open shared object file: No such file or directory

However, everything works fine on my development machine which has the same directory structure i.e.

dev machine:

/projects/gateway/app
/projects/gateway/tools/log4c/inc
/projects/gateway/tools/log4c/lib

test machine:

/projects/gateway/app
/projects/gateway/tools/log4c/inc
/projects/gateway/tools/log4c/lib

So I am wondering why it can't find it the shared library.

Many thanks for any suggestions,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

穿越时光隧道 2024-09-23 12:09:50

/projects/gateway/tools/log4c/lib 应放入 /etc/ld.so.conf (之后调用 /sbin/ldconfig)或 LD_LIBRARY_PATH shell 变量,以便动态链接器知道在哪里搜索所需的共享库。

请参阅程序库 HOWTO(3.5. 安装和使用共享库)图书馆)了解更多信息

/projects/gateway/tools/log4c/lib should either be put to /etc/ld.so.conf (call /sbin/ldconfig after) or to LD_LIBRARY_PATH shell variable so the dynamic linker would know where to search for the required shared library.

See Program Library HOWTO (3.5. Installing and Using a Shared Library) for more info

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文