!./engdemo with the ./
to make the thing run). But if I try to compile the program on the command line using gcc, I get this error:
Undefined symbols:
"_mxCreateDoubleMatrix_730", referenced from:
_main in ccpVU28R.o
"_engOutputBuffer", referenced from:
...
ld: symbol(s) not found
collect2: ld returned 1 exit status
After much searching around I have found a solution to this problem. Not sure how good it is since it involves messing with DYLD_LIBRARY_PATH
and I've been warned never to mess with that. None the less here's what I did:
First in your ~/.profile add (or just type into the shell):
export MATLAB="/Applications/MATLAB_R2009aSV.app/"
You may have to change MATLAB_R2009aSV.app to the name of the MATLAB program folder on your computer.
Then in the shell (you will have to do this everytime you compile or add this to your ~/.profile):
export DYLD_LIBRARY_PATH=$MATLAB/bin/maci/:$MATLAB/sys/os/maci/:DYLD_LIBRARY_PATH
64-bitters may need to change the maci
to maci-64
or something.
Finally compile using all these flags and parameters:
g++ -o engdemo engdemo.cpp -I$MATLAB/extern/include/ -L$MATLAB/bin/maci/ -leng -lm -lmat -lmx -lut
or
gcc -o engdemo engdemo.c -I$MATLAB/extern/include/ -L$MATLAB/bin/maci/ -leng -lm -lmat -lmx -lut
A similar solution for linux
Update: If you run into an error that goes something like this:
ImportError: dlopen([your library], 2): Library not loaded: @loader_path/libeng.dylib
Then you need to change your DYLD_LIBRARY_PATH
as mentioned above.
Although then in a different library I get a new error:
ImportError: dlopen(lib/_Drawers.so, 2): Library not loaded: /opt/local/lib/libmpfr.1.dylib
Referenced from: [your other library]
Reason: Incompatible library version: [your other library] requires version 4.0.0 or later, but libmpfr.1.dylib provides version 3.0.0
Which seems to be because MATLAB has its own out of date libmpfr.1.dylib which causes CGAL to belch. Haven't come upon a solution for this yet but will post if I do.