From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Dec  9 03:09:29 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id DAA30296;
	Thu, 9 Dec 1999 03:09:29 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from ms1.din.or.jp (ms1.din.or.jp [210.135.65.21])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id DAA30291
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 9 Dec 1999 03:09:29 +0900 (JST)
	(envelope-from tshiozak@din.or.jp)
Received: from localhost (ppp10-156.din.or.jp [210.135.74.187])
	by ms1.din.or.jp (8.9.3/3.7W) with ESMTP id DAA28603
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 9 Dec 1999 03:09:27 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org
From: "T.SHIOZAKI" <AoiMoe@imou.to>
In-Reply-To: <199912060542.OAA20617@ccz03.sfc.keio.ac.jp>
References: <199912060542.OAA20617@ccz03.sfc.keio.ac.jp>
X-Mailer: Mew version 1.95b3 on Emacs 20.4 / Mule 4.0 (HANANOEN)
X-Prom-Mew: Prom-Mew 1.93.2 (procmail reader for Mew)
X-My-Web-Root: http://www.imou.to/~AoiMoe/
X-Organization: I18n/M17n Operating task force for Unix (IMOU)
X-FYI: X-TT Ver1.3.0 is available!!
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19991209031156J.tshiozak@din.or.jp>
Date: Thu, 09 Dec 1999 03:11:56 +0900
X-Dispatcher: imput version 991025(IM133)
Lines: 93
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: FreeBSD-users-jp 48109
Subject: [FreeBSD-users-jp 48109] Re: How to make shared library on FreeBSD3.x
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: tshiozak@din.or.jp


$B1v:j$G$9!#(B


From: Jin Arai <s96023ja@sfc.keio.ac.jp>
Subject: [FreeBSD-users-jp 47987] How to make shared library on FreeBSD3.x
Date: Mon, 06 Dec 1999 14:42:36 +0900
Message-ID: <199912060542.OAA20617@ccz03.sfc.keio.ac.jp>

> $B1v:j$5$s$N%Z!<%8(B:
> http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/shlib1/

$B$"$l$O!";W$$$C$-$j(B obsolete $B$7$F$^$9!#(Ba.out $B$J(B FreeBSD
($B$H!"$?$V$s(B a.out NetBSD)$B$G$OM-8z$G$9$,!"(BELF $B$J(B FreeBSD /NetBSD $B$G$O(B
$B%j%s%+%*%W%7%g%s$,Bg$-$/JQ$o$C$F$^$9!#(B


> $B6qBNE*$J%=!<%9$O0J2<$N$h$&$K$J$C$F$*$j!"(B
> ----- $B$3$3$+$i(B ----- $B$3$3$+$i(B ----- $B$3$3$+$i(B ----- $B$3$3$+$i(B -----
> --hello.c--
> #include <stdio.h>
> 
> main(){ printf("hello world\n"); }
> 
> --main.c--
> ($B6u$N%U%!%$%k(B)
> ----- $B$3$3$^$G(B ----- $B$3$3$^$G(B ----- $B$3$3$^$G(B ----- $B$3$3$^$G(B -----
> 
> 
> gcc$B$*$h$S(Bld$B$N%3%^%s%I%i%$%s$O0J2<$N$h$&$K$7$F$*$j$^$9!#(B

$B$3$l$b!":#;W$($PITE,@Z$JNc$+$J!<!"$H$O;W$$$^$9!#(B


> ----- $B$3$3$+$i(B ----- $B$3$3$+$i(B ----- $B$3$3$+$i(B ----- $B$3$3$+$i(B -----
> % gcc -c -fpic hello.c
> % ld -Bshareable -olibhello.so.1.0 hello.o
> % gcc -ohello main.c -L. -lhello(*)
> ----- $B$3$3$^$G(B ----- $B$3$3$^$G(B ----- $B$3$3$^$G(B ----- $B$3$3$^$G(B -----
> 
> $B$3$N!"(B(*)$B$NCJ3,$G>e5-%(%i!<$,=P$^$9!#(B
> $B$A$J$_$K!"(B-lxxx$B$N$H$3$m$r!"%$%s%9%H!<%k:Q$_$N%i%$%V%i%j(B($BNc$($P(Bcrypt)$B$K(B
> $B$9$k$H!"$"$?$j$^$($G$9$,(B
> /usr/lib/crt1.0(.text:0x69): undefined reference to `main' 
> 
> $B$H$$$&%(%i!<$K$J$j$^$9!#$3$N%(%i!<$N0c$$$O!"2?$r0UL#$9$k$N$G$7$g$&$+!)(B

$B$&!<$s$H!"(BELF $BN.$@$H!"(B

aoi% gcc -c -fpic hello.c
aoi% gcc -shared -o libhello.so.1.0 hello.o -Wl,-soname,libhello.so.1
aoi% ln -s libhello.so.1.0 libhello.so.1
aoi% ln -s libhello.so.1.0 libhello.so
aoi% cp /dev/null main.c
aoi% gcc -o hello main.c -L. -lhello
aoi% LD_LIBRARY_PATH=. ./hello

$B$H$J$k$G$7$g$&$+!#(BNetBSD-1.4P(i386/ELF) $B$G$OF0$-$^$7$?!#(B
$B%]%$%s%H$O!"(B
  * $B%j%s%+%*%W%7%g%s(B -soname $B$K$h$C$F!"<B9T;~$K%m!<%I$9$k%U%!%$%kL>$rL@<($9$k!#(B
  * ld $B$O!"(Blib$B$[$2$[$2(B.so $B$H$$$&$N$rC5$7$K9T$/!#(B
$B$N(B 2 $BE@$G$9$M!#(Bsoname $B$K$h$C$F%m!<%I$5$l$k%U%!%$%kL>$,L@<($5$l$k$N$G!"(B
a.out $B$N$h$&$K!"%^%$%J!<HV9f$rA}$d$7$F$$$/!"$H$$$&;H$$$+$?$,$G$-$^$;$s!#(B
$B$=$N$+$o$j!">e$N$h$&$K!"(Bsoname $B$K(B lib$B$[$2$[$2(B.so.$B%a%8%c!<HV9f(B
$B$H$$$&$N$r;XDj$7$F!"%7%s%\%j%C%/%j%s%/$rD%$k!"$H$$$&$N$,IaDL$N1?MQ$G$9!#(B
$B$3$&$9$k$H!"(Ba.out $B$N>l9g$H;w$?F0:n$K$J$j$^$9!#$,!"(Ba.out $B$H0[$J$j!"(B
$B%^%$%J!<HV9f$N?tCME*$JBg>.$K$O2?$i0UL#$,$J$$$N$G!"%$%s%?!<%U%'!<%9$,(B
$B$A$g$C$H$G$bJQ99$K$J$C$?$i%a%8%c!<HV9f$rJQ$($J$$$H4m81$G$9!#(B
$B$D$^$j!"(Ba.out $B$G$O!"!V8E$$%i%$%V%i%j!W$H!V?7$7$$<B9T%U%!%$%k!W$N(B
$BAH9g$;$G$O$A$c$s$H(B warning $B=P$7$F$/$l$k$1$I!"(BELF $B$G$O=P$7$F$/$l$J$$!#(B
$B$s$G!"<B9T$7$F$_$F%$%s%?!<%U%'!<%9$,JQ99$K$J$C$F$F(B Bus Error $B5/$3$9$H$+!"(B
Weak Symbol $B$,=P$FMn$A$k!"$H$+$7$F=i$a$F5$$E$/!#$@$+$i(B ELF $B$O7y$$$@!#(B
$B%j%M!<%_%s%0%F%/%K%C%/$K$h$C$F8eJ}%P%$%J%j8_49@-$rJ]$D!"$H$$$&(B
UNIX $BN.<jK!$,;v<B>e0BA4$K;H$($J$$!"$H$$$&$N$OLdBj$,$"$k$H;W$&$1$I!#(B

$B$=$N$[$+!"(Ba.out $B$G$O%j%s%+%*%W%7%g%s(B -R $B$G;XDj$G$-$?(B
$B%i%s%?%$%`%i%$%V%i%j%Q%9$,%j%s%+%*%W%7%g%s(B -rpath $B$KJQ99$5$l$F$k$H$$$&(B
$BE@$b0c$$$^$9!#$b$H$b$H(B -R $B%*%W%7%g%s$K$D$$$F>e5-%Z!<%8$G$O?($l$F$^$;$s$,!#(B


> $B$J$K$V$s(B 3.x $B$K4X$9$k;qNA$,>/$J$/!"(Bweb$B>e$G$N8!:w$b;n$_$?$N$G$9$,!"$$$$(B
> $B$b$N$,8+$D$+$j$^$;$s$G$7$?!#$_$J$5$^$NCN<1$r$*<Z$j$7$?$/;W$$$^$9!#(B

$B$&!<$s$H!"(BLinux HOWTO $B$"$?$j$,;29M$K$J$k$+$b$7$l$^$;$s!#(B
$B$"$k$$$O!":#$@$C$?$iAG$G(B gcc -shared $B$H$+$d$i$J$$$G!"AGD>$K(B GNU libtool
$B;H$C$F(B so $B:n$k$H9,$;$K$J$l$k$+$b$7$l$^$;$s!#$"$N%Z!<%8=q$$$?:"$O!"(B
$B$A$g$&$I(B libtool-1.0 $B$,=P$k$+$G$J$$$+$N:"$@$C$?$H5-21$7$F$^$9!#(B


$B$G$O!#(B

--
Takuya SHIOZAKI - chair of IMOU.
