Mathematica - MathLink

O matematiki, številih, množicah in računih...
Odgovori
Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Mathematica - MathLink

Odgovor Napisal/-a fogl »

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);
}

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Mathematica - MathLink

Odgovor Napisal/-a Aniviller »

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.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - MathLink

Odgovor Napisal/-a fogl »

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

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Mathematica - MathLink

Odgovor Napisal/-a Aniviller »

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.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - MathLink

Odgovor Napisal/-a fogl »

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...

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Mathematica - MathLink

Odgovor Napisal/-a Aniviller »

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...

Odgovori