I am trying to use WSTP to link to the addtwo.c function example that comes with Mathematica. I have compiled addtwo successfully (took an effort) and if I run it in the command line I can connect it to Mathematica and use it. However running
Install["./addtwo"]
in Mathematica just hangs until I abort. The precompiled addtwo binary that comes with Mathematica does install fine.
Is there a way to find out more about why the Install[]
fails?
I compiled using the (adapted) makefile which produces:
:~$ make addtwo
/usr/local/Wolfram/Mathematica/10.1/SystemFiles/Links/WSTP/DeveloperKit/Linux-x86-64/CompilerAdditions/wsprep addtwo.tm -o addtwotm.c
gcc -c -I/usr/local/Wolfram/Mathematica/10.1/SystemFiles/Links/WSTP/DeveloperKit/Linux-x86-64/CompilerAdditions addtwotm.c
gcc -c -I/usr/local/Wolfram/Mathematica/10.1/SystemFiles/Links/WSTP/DeveloperKit/Linux-x86-64/CompilerAdditions addtwo.c
gcc -I/usr/local/Wolfram/Mathematica/10.1/SystemFiles/Links/WSTP/DeveloperKit/Linux-x86-64/CompilerAdditions addtwotm.o addtwo.o -L/usr/local/Wolfram/Mathematica/10.1/SystemFiles/Links/WSTP/DeveloperKit/Linux-x86-64/CompilerAdditions -lWSTP64i4 -lm -lpthread -lrt -lstdc++ -ldl -luuid -lWSTP64i4 -o addtwo
Note that addition of -lWSTP64i4
didn't change anything, I tried it because of this answer which was already a bit desperate.
Could it be because of my gcc version? ( 4.6.3-1ubuntu5 )
addtwo
in a terminal. It should give you a "Create link:" prompt. Type the name of a link (you can make it up). Let's say you chose the name "foo". Now in Mathematica, dolink = LinkConnect["foo"]
, then finallyInstall[link]
. If all went well,addtwo
will be "installed" now and ready to use. Otherwise you'll find out at whcih step the failure happens. $\endgroup$addtwo
in a terminal doesn't. However I tried MathLink (I was not optimistic and a bit annoyed maybe...) but it works! I used the same makefile, just replaced theWSTPLINKDIR
, theWSTPLIB
, and setWSPREP
to themprep
executable. So either the library or the preparation file is broken I guess. $\endgroup$