Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C AIX中的共享对象加载?_C_Shared Libraries_Aix_Dbx - Fatal编程技术网

C AIX中的共享对象加载?

C AIX中的共享对象加载?,c,shared-libraries,aix,dbx,C,Shared Libraries,Aix,Dbx,我有一个C程序。我创建了一个共享对象hello.so hello.c和hello.so分别位于目录/u/grv/program/hello.c/u/grv/objects/hello.so中 LIBPATH设置为/u/grv/objects:$LIBPATH 当我使用dbx调试代码时,..dbx要求我从两个so的列表中进行选择 在LIBPATH的所有目录中只有一个“hello.so”文件。那么secound“so”文件来自哪里呢 以下是dbx会话的屏幕截图: (dbx) stop on load

我有一个C程序。我创建了一个共享对象hello.so

hello.c和hello.so分别位于目录/u/grv/program/hello.c/u/grv/objects/hello.so中

LIBPATH设置为/u/grv/objects:$LIBPATH

当我使用dbx调试代码时,..dbx要求我从两个so的列表中进行选择

在LIBPATH的所有目录中只有一个“hello.so”文件。那么secound“so”文件来自哪里呢

以下是dbx会话的屏幕截图:

(dbx) stop on load "hello.so"
[1] stop on load "hello.so"
(dbx) c
stop:   loaded /u/grv/object/hello.so
[1] stopped in uload at 0x9fffffff0002024 ($t1)
0x9fffffff0002024 (uload+0x104) e8410028          ld   r2,0x28(r1)
(dbx) stop in hello
1. hello.hello
2. glink64.hello
Select one or more of [1 - 2]:
其他信息: genkld命令不支持hello.so。。这意味着它未加载..这是它要求我选择..的原因吗..还是有其他原因


如何加载共享对象以使其显示在genkld列表中?

很明显,库
glink64
还包含一个名为
hello
的入口点

您可以尝试将函数名从
hello
更改为更独特的名称,然后让应用程序调用此新的独特函数名


我不熟悉
genkld
实用程序,因此无法在这方面帮助您

您真正想要实现什么?创建一个运行它自己的共享对象?我只是好奇为什么有两个so..但我只有so..是的,只有一个“hello.so”,但有两个“hello”符号。也可以试试这个:
infosh
(它在gdb中工作,不知道dbx)。