[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:44862] Re: シンボル未解決の共有ライブラリ作成



On Thu, 6 Oct 2005 10:58:52 +0900,
Kan Arita <arita.kan@xxxxxxxxx> wrote:
> 実際にこのようなmod_ssl.soが存在するのですから実現可能なのでしょうが、
> これをgccやldで明示的に制御するにはどのようにすればよいのでしょう?
特に何もいらないようです。

$ ls
Makefile  bar.c
$ cat bar.c
void foo(void);
void bar(void);

void
bar(void)
{
  foo();
}
$ make
gcc -fPIC -Wall -o bar.o -c bar.c
gcc -shared -Wl,-soname,libbar.so.1 -o libbar.so.1.0 bar.o
$ nm libbar.so.1.0
00001768 A _DYNAMIC
00001844 A _GLOBAL_OFFSET_TABLE_
         w _Jv_RegisterClasses
00001834 d __CTOR_END__
00001830 d __CTOR_LIST__
0000183c d __DTOR_END__
00001838 d __DTOR_LIST__
00001764 r __FRAME_END__
00001840 d __JCR_END__
00001840 d __JCR_LIST__
00001868 A __bss_start
         w __cxa_finalize@@GLIBC_2.1.3
00000700 t __do_global_ctors_aux
00000610 t __do_global_dtors_aux
0000175c d __dso_handle
         w __gmon_start__
000006d0 t __i686.get_pc_thunk.bx
00001868 A _edata
0000186c A _end
00000740 T _fini
00000580 T _init
000006d4 T bar
000005e0 t call_gmon_start
00001868 b completed.1
         U foo
00000690 t frame_dummy
00001760 d p.0

動くかどうかは試していません。

-- 
大原雄馬 <oohara@xxxxxxxxxxxxxxxxxx>

命限りある者、その何と愚かなことか!
--- シェイクスピア「夏の夜の夢」
all: libbar.so.1.0

libbar.so.1.0: bar.o
	gcc -shared -Wl,-soname,libbar.so.1 -o libbar.so.1.0 bar.o

bar.o: bar.c
	gcc -fPIC -Wall -o bar.o -c bar.c

.PHONY: all clean

clean:
	-rm -f libbar.so.1.0 *.o
void foo(void);
void bar(void);

void
bar(void)
{
  foo();
}