you're right. i looked a little closer at the 3rd party headers. turns out they 
just missed the one file and all the others had the proper definitions. thanks.


  ----- Original Message ----- 
  From: Thomas Hruska 
  To: [email protected] 
  Sent: Friday, August 20, 2010 7:10 PM
  Subject: Re: [c-prog] VC++ linker can't find an export symbol


    
  On 8/19/2010 12:37 AM, Gerald Dunn wrote:
  >> ...it would be nice to root cause the problem and solution.
  >
  > I don't think I expressed my confusion correctly. I agree that name 
mangling is the problem. I just don't understand why it's only a problem for 
the exports in one file and not the others. I was able to link with all other 
exported functions not declared in the problematic header. The other .h files 
don't ecapsulate the definitions with 'extern "C"'. That's all I meant.

  Because you are mixing C and C++. The C++ compiler goes through, sees 
  those items in the header file, and adds the name-mangled versions to 
  the object file. Then the linker looks for the name-mangled versions, 
  can't find them, and bails. All C exports have to have the extern "C" 
  declaration for the C++ compiler to know not to name-mangle the name.

  -- 
  Thomas Hruska
  CubicleSoft President

  Barebones CMS is a high-performance, open source content management 
  system for web developers operating in a team environment.

  An open source CubicleSoft initiative.
  Your choice of a MIT or LGPL license.

  http://barebonescms.com/



  

[Non-text portions of this message have been removed]

Reply via email to