delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/01/10/10:05:47

X-Spam-Check-By: sourceware.org
From: "Dave Korn" <dave DOT korn AT artimi DOT com>
To: <cygwin AT cygwin DOT com>
Subject: RE: Link errors related to vtable
Date: Wed, 10 Jan 2007 15:05:12 -0000
Message-ID: <004101c734c8$ba883260$a501a8c0@CAM.ARTIMI.COM>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 11
In-Reply-To: <45A4E422.3000903@byu.net>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

On 10 January 2007 13:04, Eric Blake wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> According to George on 1/9/2007 11:02 PM:
>> Hi,
>> I am getting link errors like below when I compile my
>> code(systemc) which is  on cygwin 1.5.23 with gcc
>> 3.4.4
>> (systemc is a c++ class library)
> 
> No wonder.  C++ code MUST be compiled with g++, not gcc (unless you REALLY
> know what you are doing).

  I guess George does, since...

On 10 January 2007 06:03, George wrote:

> -------------------------------------------------------
> g++ -O3 -Wall -I. -I.. -I../../../include -L. -L..
> -L../../../lib-linux -o run.x packet.o
> packet_generator.o hub.o main.o -lsystemc -lm  2>&1 |
> c++filt
>
main.o:main.cpp:(.text$_ZN11packet_fifoC1EN7sc_core14sc_module_nameE[packet_fi
fo::packet_fifo(sc_core::sc_module_name)]+0x91):
> undefined reference to `VTT for packet_fifo'

  George, this will be hard for me to diagnose without an STC.  The first
thing you should do is read "6.4 Vague Linkage" in the gcc manual which
explains how and when gcc decides to emit the vtable for a class; then try
running nm over the object files and seeing if it's there in the expected one
or not.  Maybe there's a link-ordering problem or something.

  If you can produce an STC based only on snippets of main and packet_fifo I'd
be able to figure it out in more detail.

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


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