X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Dave Bodenstab Subject: Re: Can't link TclMagick anymore Date: Thu, 10 Aug 2006 01:08:35 -0500 Lines: 41 Message-ID: References: <000001c6bb5d$a7f65850$5c4861cb AT anykey> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) In-Reply-To: <000001c6bb5d$a7f65850$5c4861cb@anykey> X-Antivirus: avast! (VPS 0632-1, 08/09/2006), Outbound message X-Antivirus-Status: Clean X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com 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 AT _03KBFG@Tcl?$AA@: symbol not found >> Cannot export ??_C AT _0DM@EBFE AT 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/