home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / lang / c / 11779 < prev    next >
Encoding:
Text File  |  1992-07-30  |  1.6 KB  |  40 lines

  1. Path: sparky!uunet!mcsun!news.funet.fi!hydra!klaava!wirzeniu
  2. From: wirzeniu@klaava.Helsinki.FI (Lars Wirzenius)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: linking gcc code with CC code
  5. Keywords: link
  6. Message-ID: <1992Jul30.204044.2989@klaava.Helsinki.FI>
  7. Date: 30 Jul 92 20:40:44 GMT
  8. References: <1992Jul30.182047.18971@news.columbia.edu>
  9. Organization: University of Helsinki
  10. Lines: 28
  11.  
  12. kps@cunixb.cc.columbia.edu (Karthik P Sheka) writes:
  13. >Is it possible to link gcc created object files with CC created object
  14. >files?  
  15.  
  16. That depends on which CC and which version gcc and which operating
  17. system and on the phase of the moon.  Cross-language calling is always
  18. dependent on these (and other) factors, even for closely related
  19. languages such as C and C++.  You can't even be certain that you can
  20. call subroutines in the same language, if they are compiled with
  21. different compilers (or even using different settings with the same
  22. compiler).
  23.  
  24. Could you translate everything to C or C++ and use only one compiler? 
  25. This is often the easiest solution.
  26.  
  27. >I've tried doing so but it seems that the c functions cannot call
  28. >the c++ functions, 
  29.  
  30. Probably not.  C++ names are usually mangled so that type information
  31. (needed for overloading) is encoded into the name (as the linker sees
  32. it).  However, your sample code shows that there may be other problems
  33. as well: routine2 is declared (and defined) static in one file and
  34. extern in an other.  I assume you meant that both declarations refer to
  35. the same function, so you have to change the static declaration and
  36. definition to be global (just remove the statics).
  37.  
  38. --
  39. Lars.Wirzenius@helsinki.fi
  40.