• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Mixing obective-C and c++
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mixing obective-C and c++


  • Subject: Re: Mixing obective-C and c++
  • From: Chris Hanson <email@hidden>
  • Date: Sat, 7 Apr 2007 09:26:22 -0700

On Apr 7, 2007, at 9:03 AM, Livio Isaia wrote:

Let's say I have
  theCFile.h declaring theCProcedure,
  theCFile.c++ containing theCProcedure
  and theCocoaFile.m calling theCProcedure.

All files are in the same project; when building everything seems ok; I set "#include "theCFile.h"" in theCocoaFile.m; the target of theCFile.c++ is the target application...

I shouldn't be surprised if it couldn't link with some libraries called from theCFile.c++, but linking with theCFile.o?

You need to tell the compiler to generate theCProcedure with C linkage rather than C++ so its name doesn't get mangled to include type information.


In theCFile.h:

  #ifdef __cplusplus
  extern "C" {
  #endif

  float theProcedure(int foo); // or whatever its prototype is

  #ifdef __cplusplus
  }
  #endif

This ensures that, even when included from a source file being compiled as C++, theProcedure will be generated with or called via an unmangled name.

  -- Chris

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Mixing obective-C and c++ (From: Livio Isaia <email@hidden>)

  • Prev by Date: Re: Mixing obective-C and c++
  • Next by Date: Re: Mixing obective-C and c++
  • Previous by thread: Re: Mixing obective-C and c++
  • Next by thread: Re: Mixing obective-C and c++
  • Index(es):
    • Date
    • Thread