Mathematica - MathLink

O matematiki, številih, množicah in računih...
Post Reply
User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Mathematica - MathLink

Post by fogl » 15.11.2010 14:41

Je mogoče kdo že igral z MathLink? Sam sem naredil en kratek demo programček, ki bi ga rad poganjal iz Mathematice, ampak ko ga prevedem vedno dobim " [Linker error] undefined reference to `MLMain' ". Uporabil sem Dev-C++ (navodila so napisana za visual studio 2005, ampak to najbržni bistveno) in v compiler options pokazal na lib, bil in inlude direktorije, ampak zadeva ne funkcionira.

#include "mathlink.h"

int addtwo(int i, int j) {
return i+j;
}

int main(int argc, char* argv[]) {
return MLMain(argc, argv);
}

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - MathLink

Post by Aniviller » 15.11.2010 17:39

Skomapjalo se je, zlinkalo se pa ni. Tole je grdo ce moras to po nekih nastavitvah brskat, skoda da ne klices kompajlerja na obicajen nacin (daj eksplicitno poglej s kaksnimi argumenti se klice kompajler). Poglej ce je library res tam, ce imas pravice dostopa, ce je pravi in malo googlaj.

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - MathLink

Post by fogl » 15.11.2010 21:39

Kakšen pa je običajen način klicanja kompajlerja? Vse je kjer mora bit (vsaj kot jaz to razumem). Sem tudi poskusil skopirat direktorij z knjižnicami v Dev c++, pa je enako. Tole je pa celoten compile log.

Compiler: Default compiler
Executing g++.exe...
g++.exe "I:\Documents and Settings\Administrator\Desktop\devc++\test1.cpp" -o "I:\Documents and Settings\Administrator\Desktop\devc++\test1.exe" -I"I:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"I:\Dev-Cpp\include\c++\3.4.2\backward" -I"I:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"I:\Dev-Cpp\include\c++\3.4.2" -I"I:\Dev-Cpp\include" -I"I:\Dev-Cpp\lib\mldev32\include" -L"I:\Dev-Cpp\lib" -L"I:\Dev-Cpp\lib\mldev32\lib"
I:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWecaaa.o(.text+0x44):test1.cpp: undefined reference to `MLMain'
collect2: ld returned 1 exit status

Execution terminated

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - MathLink

Post by Aniviller » 15.11.2010 23:03

Ja tale vrstica je to kar bi ti napisal ce bi sam klical (pa ponavadi ne bi celih poti pisal za vhodni in izhodni fajl ker bi delal v lokalnem direktoriju).
Ti mu navedes vse poti ki jih potrebuje da najde libraryje in headerje. Ne vem pa ce je pravilno navedeno s katerimi libraryji sploh linkat. Obicajno se to klice kar kot recimo -llapack za library lapack in podobno... ti imas pa tukaj tudi pri -l stikalih cele klobase ki nisem preprican ce se pravilno interpretirajo.

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - MathLink

Post by fogl » 21.11.2010 20:30

Nekje na googlu sem prebral da MathLink ne deluje z gcc prevajalnikom (ne vem če je to res), zato sem potem zadevo preizkusil na MS VS 2005 (čeprav sem se ga dolgo otepal, ampak očitno ne gre brez MS :D ). Funkcioniralo je v prvem poskusu...

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - MathLink

Post by Aniviller » 21.11.2010 20:38

To ni res... poznam namrec primer ko je z gcc-jem slo brez problema (in tudi ni kaksnega pametnega razloga da ne bi slo). Problem je verjetno bolj v tem da si zelo omejen ce se gcc klice avtomaticno nekje v ozadju, in v tem da si v napacnem operacijskem sistemu za resno programiranje in lokacija in identiteta knjiznic in nasploh sistemsko okolje niso ravno dobro razcisceni. Ocitno je MS res edini ki razume kako deluje njihov gordijski vozel...

Post Reply