Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!uflorida!mephisto!mcnc!thorin!jason!tuck From: tuck@jason.cs.unc.edu (Russ Tuck) Newsgroups: comp.lang.c++ Subject: Re: C++2.0 upgrade from 1.2.? Keywords: darnit.. Message-ID: <12824@thorin.cs.unc.edu> Date: 21 Mar 90 23:58:11 GMT References: <12801@thorin.cs.unc.edu> Sender: news@thorin.cs.unc.edu Reply-To: tuck@jason.cs.unc.edu (Russ Tuck) Organization: University Of North Carolina, Chapel Hill Lines: 20 In article <12801@thorin.cs.unc.edu> frederic@vangogh.cs.unc.edu (Robin Fredericksen) writes: >I am upgrading some software from C++1.2.? to C++2.0. It seems that >there is something missing. At link time I get the message > > Undefined: > __ptbl__9ih_editor__ih_editor_c > *** Error code 1 Does your C++ program call a routine named "ih_editor" that was compiled with plain C? If so, you need to put the declaration of "ih_editor" that C++ sees inside the {}s of extern "C" { } Just a guess. One of the main changes from 1.2 to 2.0 is type-safe linking, which means encoding argument types in the mangled names of functions to be sure the calls and the definition match (even when compiled separately) and to support overloading better. To call something C compiled, you have to tell C++ that C didn't mangle the name.