Re: Interfacing C++ code to Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg16317] Re: Interfacing C++ code to Mathematica
- From: Roopesh Mathur <mathurr at me.udel.edu>
- Date: Sun, 7 Mar 1999 01:05:42 -0500
- Organization: University of Delaware
- References: <7bo0on$dpg@smc.vnet.net> <Pine.GSO.3.96rindlow.990305163901.8571A-100000@tintin.lysator.liu.se>
- Sender: owner-wri-mathgroup at wolfram.com
> > The problem is that Mathlink code embedded in my C++ program, needs to be > > compiled, while the book recommends 'mcc', which can handle only C code. I > > would like to solve this problem without changing the C++ code to C, since > > I am using the object oriented capabilities of C++ significantly. > > What you need to do is use "mprep" separately, that reads a MathLink > template and produces C source. You can then use a standard C compiler to > produce object code that can be linked together with your C++ code. > Remember to use extern "C" { } when you include any C header file in your > C++ code. > Hi! Thank you for your suggestions! I will keep this in mind when writing my Mathlink code. An alternative method has been suggested by Kevin Leuthold of Wolfram Research. FYI, I have included his method below. Sincerely, Roopesh ------------------------------------------------------------------------ You should be able to compile MathLink programs using C++ pretty much the same way you would with C. If you like using mcc, you can force it to use whatever compiler you want, even a C++ compiler, by setting your CC environment variable: setenv CC g++ Also, you don't need to use mcc - compiling a MathLink program is a matter of including mathlink.h in the appropriate files, then linking against libML.a. There is a sample makefile in the folder AddOns/MathLink/DevelopersKits/<System>/MathLinkExamples. However, there is a bug in mathlink.h that may prevent you from compiling your program using a C++ compiler. The bug is that certain function prototypes are not wrapped in extern "C" {}. You can download an updated mathlink.h that fixes this problem at http://www.wolfram.com/support/MathLink/Updates/mathlink.h.html. Kevin Leuthold MathLink Group Wolfram Research ---------------------------------------------------------------------------