Date: Mon, 23 Apr 2007 02:13:47 +0300 From: Diomidis Spinellis <dds@aueb.gr> To: Andrew Pantyukhin <infofarmer@FreeBSD.org> Cc: hackers@FreeBSD.org Subject: Re: extern "C" and undefined reference Message-ID: <462BEC2B.5090508@aueb.gr> In-Reply-To: <cb5206420704221454v60a957b9qac74dc5f4f4b674a@mail.gmail.com> References: <cb5206420704221454v60a957b9qac74dc5f4f4b674a@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Pantyukhin wrote: > 7zip developers converted some code from C++ to C, > while leaving the main stand-alone lzma app in C++. > They use 'extern "C" { }' blocks around #include's > referencing C headers. > > Everything compiles fine, but "undefined reference" > errors appear at linkage. The undefined references > are to the C functions included from withing those > 'extern "C"' wrappers. I tried to remove the > wrappers from some files and the amount of errors > decreased a bit. Is there a better workaround? > > Google came up with two results: remove the wrappers > or use c++ instead of cc. I'm already using c++. Many of the C headers are available in a different form for C++ programs. For example, in a C++ program you can #include <cstdio> instead of <stdio.h>. You can use nm(1) on the .o files to see where the problem comes from. Diomidis
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?462BEC2B.5090508>