Can't link TclMagick anymore
Dave Bodenstab
dave_bodenstab@sbcglobal.net
Thu Aug 10 06:22:00 GMT 2006
Danny Smith wrote:
> Sorry about breaking thread. I suppose I should give in and
> re-subscribe here.
> Dave Bodenstab wrote at
> http://cygwin.com/ml/cygwin/2006-08/msg00264.html
>
>
>> Warning: .drectve `-defaultlib:MSVCRT ' unrecognized
>> Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
>
> These are harmless
>
>> Cannot export ??_C@_03KBFG@Tcl?$AA@: symbol not found
>> Cannot export ??_C@_0DM@EBFE@This?5interpreter?5does?5not?5suppor@:
> symbol not found
>
> My MSVC++ 'demangle fu' is not up to that
> Those must be from tclstub84.lib (tclStubLib.obj), yes?
>
> By not explicitly telling ld what to export, you are implicitly telling
> it to export-all symbols from all your objects and archives, excluding a
> few system libs. Tell ld to exclude tclstub84.lib from exports, as well
>
>
> $ gcc -v -shared -mno-cygwin \
> -o libTclMagick.dll \
> -L'/cygdrive/c/Program Files/ImageMagick' \
> TclMagick.o \
> -ltclstub84 \
> -lCORE_RL_wand_ -lCORE_RL_magick_ \
> -Wl,--exclude-libs,tclstub84.lib
That did it. Thanks much.
Where can I learn about this "export" stuff? I've never, ever had to
"export" anything (via ld) when making a .so on unix -- it's all done
(for C) by *not* declaring a symbol as "static". Any suggestion on
a tutorial that explains the how and why when linking dll's on
windows?
Thanks again.
--
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/
More information about the Cygwin
mailing list