Hi, At Thu, 3 Jan 2008 13:49:33 +0900, Mohit Sindhwani wrote in [ruby-talk:285753]: > Linking in a C program works perfectly fine. The problem that I was > having was in a C++ file. I found some hints from another thread: > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/215624 > > Based on this, I changes win32.h - it originally has a line like: > #if defined(__cplusplus) > extern "C++" { > #endif > ((after this, in does #include for stdio.h, stdlib.h, etc.)) > > I changed the C++ there to "C" and then it works fine. I also had to > remark out one of the lines in missing.h because it seems that one of > the definitions there is now not missing :) It must be C++ due to a template without extern "C++", in math.h of MSVC6. Microsoft also seems to have considered this is a problem and fixed it in VC8. The re-definitions in BCC are caused by C linkage and using std namespace. Although it also seems quite curious, it should be fixed as a workaround for VC6. -- Nobu Nakada