delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/02/04/10:40:46

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Subject: RE: undefined reference to `_msgDebug' in GCC
MIME-Version: 1.0
Date: Mon, 4 Feb 2008 15:41:43 -0000
Message-ID: <5E25AF06EFB9EA4A87C19BC98F5C87530D328B@core-email.int.ascribe.com>
From: "Phil Betts" <Phil DOT Betts AT ascribe DOT com>
To: <cygwin AT cygwin DOT com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id m14FeZM1003737

Anik Pal wrote on Saturday, February 02, 2008 9:05 AM::

> I am trying to using a library in my code whose default compiler is
> MSVCRT. When I try to compile that code in cygwin GCC environment I
> get the following errors
> 
>
F:/geolog6.6.1/lib/libgeolog6.a(fileprintf.o):C:/development/ptc:(.text+
0x9)
>> undefined reference to `__chkstk'
[snip]
>> more undefined references to `_msgDebug' follow
> 
> Can anyone tell me which cygwin-mingw library to be added to get rid
> of this linking error?
> 
> My make file linking option I'm providing as follows
> 
> -LF:/geolog6.6.1/lib -lcgg -lgeolog6  -llicence -llogs_dll -lPGILc_dll
> -lPGILcTool_dll -lcgs -llmgr9a -LD:/cygwin/lib -lcygwin
> -LD:/cygwin/lib/mingw -lmsvcrt -Bstatic -LD:/cygwin/lib -lm
> 

First, don't use windows pathnames.  Cygwin is a POSIX environment,
so use POSIX pathnames (I.e. "/cygdrive/f/" instead of "F:/")

Second, you're linking with cygwin AND msvcrt and potentially also
mixing cygwin and mingw libraries.  Don't do that.
The cygwin, msvcrt and mingw are fundamentally incompatible.  
[Although it is possible under very specific circumstances to mix
cygwin and msvcrt, it requires knowledge of the internals of both
libraries, and if you had that knowledge, you wouldn't have posted 
your question, so the advice stands]

Make your mind up whether you want to write a POSIX program or a
Windows program and stick to your decision.

Third, let the compiler choose the C runtime library.  You don't
specify -lcygwin, nor the path to the standard library locations,
so the only -L you need is "-L/cygdrive/f/geolog6.6.1/lib"

Fourth, libm is integral to cygwin1.dll, so you don't need -lm.
The math library supplied with cygwin is only a stub to support 
makefiles such as yours that assume it's necessary.


Phil

--
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/


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019