Hi, All:


$ gcc -shared -o bug1-main.so bug1-main.c -ldl -Wl,--out-implib=libmain.dll.a
Creating library file: libmain.dll.a
$ gcc -shared -o bug1.so bug1.c  -L. -lmain
$ gcc -o bug1-main bug1-main.c -ldl
$ ./bug1-main.exe
in myfunc.so
in main.func1()

This method is wrong, because the bug1.so still depends on
bug1-main.so, so if I delete the bug1-main.so it will do nothing!

The correct method should be:

bug1-main.c ==> __declspec(dllexport) int func1()
gcc -c bug1-main.c
dlltool.exe --export-all --output-def bug1-main.def bug1-main.o
gcc -o bug1-main bug1-main.c -ldl
dlltool.exe --dllname bug1-main.exe --def bug1-main.def --output-lib
libbug1-main.dll.a
gcc -shared -o bug1.so bug1.c -L. -lbug1-main // or gcc -shared -o
bug1.so bug1.c libbug1-main.dll.a

Reference:
http://mail.python.org/pipermail/python-list/2002-May/143575.html

My question is why the --export-dynamic doesn't work ?
gcc -Wl,--export-dynamic -o bug1-main bug1-main.c -ldl

Regards,
Andy

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to