Can't link TclMagick anymore
Larry Hall (Cygwin)
reply-to-list-only-lh@cygwin.com
Thu Aug 10 15:23:00 GMT 2006
Dave Bodenstab wrote:
> 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?
I'd recommend going to the source for information on DLLs:
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_core_dlls.3a_.overview.asp>
--
Larry Hall http://www.rfk.com
RFK Partners, Inc. (508) 893-9779 - RFK Office
216 Dalton Rd. (508) 893-9889 - FAX
Holliston, MA 01746
--
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