MathLink を使用して、プログラムが Mathematica と通信できるようにしようとしています。私は cygwin と Mathematica 8.0 を使用しています。
「AddTwo」プログラムに相当するものをコンパイルし、x86_64-w64-mingw32-gcc.exe コンパイラ (cygwin と共にインストール) を使用して正常に使用できます。
しかし、gcc を使用してコンパイルしようとすると、mathlink.h に大量のエラーが発生します。ここに私が得るものの最初の数行があります:
gcc -c -static-libgcc -I/cygdrive/c/Program\ Files/Wolfram\ Research/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Windows-x86-64/CompilerAdditions/mldev64/include talk.c
In file included from talk.c:1:0:
mathlink.h:996:1: error: expected ‘)’ before ‘*’ token
mathlink.h:997:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘MLDeviceMain’
gcc を使用したい理由は、コードで gsl ライブラリを使用したいからです。私はそれらを gcc で十分に簡単に使用できますが、mingw コンパイラーを gsl ライブラリーで動作させる方法を理解することはできません。gsl を使用して mingw から取得したエラー メッセージは次のとおりです。
"x86_64-w64-mingw32-gcc.exe" -o Loops.exe ./loops.o -L/usr/lib -lgsl -lgslcblas
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgsl.dll.a when searching for -lgsl
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgsl.a when searching for -lgsl
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgsl.a when searching for -lgsl
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgsl.dll.a when searching for -lgsl
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgsl.a when searching for -lgsl
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lgsl
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgslcblas.dll.a when searching for -lgslcblas
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgslcblas.a when searching for -lgslcblas
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgslcblas.a when searching for -lgslcblas
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgslcblas.dll.a when searching for -lgslcblas
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: skipping incompatible /usr/lib/libgslcblas.a when searching for -lgslcblas
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lgslcblas
どんな支援も大歓迎です (私は知っています、私は知っています、* nix マシンに行くとすべてが動作します... しかし、私は別の Mathematica ライセンスを買う余裕がありません)。