Bento wrote:
>
> Guys,
> Gimana ya caranya bikin shared object di linux (file-file .so),...apa-apa
> saja yg diperlukan
>
yg. sederhana sih kayaknya cukup dengan meng-compile file2 source
librarynya dengan target file .so, dan dikasi option '-shared' biar
gcc nggak komplain soal nggak nemuin fungsi main:
$ cat << EOF > mylib.c
> void my_func(const char *name) {
> printf("Hello %s\n", name);
> }
> EOF
$ gcc -o libmylib.so -shared mylib.c
$ mv libmylib.so /usr/lib
$
- udah!
buat makainya sih, biasa saja, seperti kita nge-link dengan library
yg. lain:
$ cat << EOF >> mytest.c
> void my_func(const char *name);
> main()
> {
> my_func("world");
> }
> EOF
$ gcc -o mytest mytest.c -lmylib
$ ./mytest
Hello world
ini buat ngetest apakah mytest (executable) emang sudah nge-link
secara dynamic ke libmylib.so
$ ldd ./main
libmylib.so => /lib/libmylib.so (0x40019000)
libc.so.6 => /lib/libc.so.6 (0x4001c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
kalau nggak percaya sama ldd, bisa juga dicoba dengan merubah hasil
output di mylib, trus tanpa mengcompile ulang mytest, lihat apakah
hasil outputnya mytest berubah.
_kayaknya_ sih kalau sederhana ya gitu aja cukup. Kalau mau canggih
(misalnya mau pakai versi, seperti libmylib.so.1, atau kalau mau
mengeksport klasnya C++), entahlah. Di 'info gcc' kayaknya sih
dijelasin (atau di 'ld' ya? 'ld' itu linker, btw), tapi nyari
dokumentasinya emang rada2 susah. Mungkin rekan2 yg. lain ada yg.
punya linknya.
--
cheers,
Bennylp
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]