[launchd-dev] XCode 3.0. Unresolved externals

Quinn eskimo1 at apple.com
Mon Jul 21 08:03:00 PDT 2008


At 15:18 +0300 21/7/08, Vyacheslav Karamov wrote:
>I've "solved" :((((((((( this problem by changing "Target OS" from 10.4
>to 10.5.
>Why? Why I have to?

This is because of a bug in the 10.4 SDK.  In that SDK the "launch.h" 
file does not include the necessary stuff to prevent C++ name 
mangling of the launchd functions (the __BEGIN_DECLS and __END_DECLS 
macros).  Thus, when you include the file from a C++ program, the 
names get mangled and the linker can't find them in the System 
framework.

This bug is fixed in the 10.5 SDK.  It's unlikely to ever be fixed in 
the 10.4 SDK because the 10.4 SDK is deliberately designed to reflect 
the state of the system at the time when 10.4 was released.

You may be able to work around this problem by changing:

#include <launch.h>

to:

extern "C" {
#include <launch.h>
};

S+E
-- 
Quinn "The Eskimo!"                    <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware


More information about the launchd-dev mailing list