免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3559 | 回复: 1
打印 上一主题 下一主题

HP-UX动态连接库的查找路径问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-17 13:28 |只看该作者 |倒序浏览
我使用的系统是HP-UX11.23,使用的编译工具是aCC。编译环境以及编译出的程序均为64bit。

我写了一个小例子,两个文件分别是say.c和test.c。
say.c:
     1  #include <stdio.h>
     2  void say()
     3  {
     4          printf(\"say!\\n\");
     5  }

test.c:
     1  void say();
     2  int main()
     3  {
     4          say();
     5          return 0;
     6  }

Makefile:
     1  a.out:test.c say.so
     2          aCC +DD64 say.so test.c
     3  say.so:say.o
     4          aCC +DD64 -b say.o -o say.so
     5  say.o : say.c
     6          aCC +DD64 +z -c say.c
     7  clean :
     8          rm *.out *.o *.so

执行make以后,生成可执行文件a.out。如果在当前目录下运行,没有问题。如果到别的目录下运行a.out,就会报告说找不到say.so文件。
我设置了LD_LIBRARY_PATH)=say.so所在的文件夹后,仍然不起作用。

已经调查了整整两天了,不知道是何原因,请指点一下吧。

论坛徽章:
0
2 [报告]
发表于 2009-09-17 13:32 |只看该作者
查看a.out的依赖关系,如下所示:
$ ldd -s a.out

  find library=./say.so; required by a.out
        ./say.so =>     ./say.so
指向的是当前目录下的say.so。无论在哪个目录下运行a.out,必须在当前目录下存在say.so才行,否则就会报告找不到say.so。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP