Re: Interfacing C++ code to Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg16298] Re: Interfacing C++ code to Mathematica
- From: kevinl (Kevin Leuthold)
- Date: Sun, 7 Mar 1999 01:05:33 -0500
- Organization: Wolfram Research, Inc.
- References: <7bo0on$dpg@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
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
Roopesh Mathur <mathurr at me.udel.edu> writes:
>I have a question on interfacing C++ code to Mathematica. Hope you or
>other members of the Mathematica User Group can answer it. A short
>description :
>I have an analytical model for a manufacturing process, written as a
>notebook in Mathematica 3.0, which I would like to use to optimize the
>process. For this,the optimization algorithm, which is written in C++,
>needs to call the model repetitively, in an optimization loop. I have come
>up with the following idea to do this:
>1. Convert the hitherto open-ended model into a function which returns the
>relevant data after computation.
>2. Use Mathlink to connect to the Mathematica kernel and call this
>function from the optimization code.
>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.
>I tend to believe that with the number of people using C++, someone must
>have encountered this problem before.
>Any suggestions and experience would be welcome! Please reply to my e-mail
>address : mathurr at me.udel.edu also.
>Sincerely,
>Roopesh