(1)まず、gslのソースをもってくる
http://ftp.jaist.ac.jp/pub/GNU/gsl/
(2)次にコンパイル
./configure --host=x86_64-w64-mingw32 --prefix=/cygdrive/c/gsl CC=x86_64-w64-mingw32-gcc.exe CXX=i686-pc-mingw32-g++.exe
make
make install
configure の意味は
configure --help
を参考に。
コンパイラをCC=x86_64-w64-mingw32-gcc.exe をしておくこと(mingw64bitのコンパイラ)、
環境を x86_64-w64-mingw32 (mingw環境)
としておくことがポイント。
mingwがない場合はそれっぽいものをsetup.exeから落としてくることができる。
参考サイト
mingw な ruby2.0 を cygwin 上でビルドする
http://qiita.com/hidachinoiro/items/19d2083ecc1bb72e3ccd
http://www.bookshelf.jp/texi/autoconf-ja/autoconf-ja_13.html
configure host bild の違い
http://d.hatena.ne.jp/maminus/20100129/1264781242
(3)PATHの設定。Windowsの(システム)パスにc:\gsl\bin を加えておく。
コントロールパネル->システム環境設定->環境変数
注意:WindowsにはユーザーPATHとシステムPATHがあるので注意が必要。
おそらくこれでOK.
(4)テスト
#include <stdio.h> #include <gsl/gsl_rng.h> #include <gsl/gsl_randist.h> void main(){ const gsl_rng_type *T; int i; gsl_rng *r; double sigma=1; double mean=0; int number=100; double v; //gsl_rng_setup(); T = gsl_rng_default; r = gsl_rng_alloc(T); gsl_rng_set(r,2); for(i=0;i<number;i++){ v=gsl_ran_gaussian(r,1.0); printf("%lf\n",v); } }
x86_64-w64-mingw32-gcc gsl_test.c -I/cygdrive/c/gsl/include -L/cygdrive/c/gsl/lib -lgsl -o a2.out
実行 (cygwin上)
./a2.out
結果
- 1.303106
0.641980
- 0.652074
- 1.767485
- 0.917929
0.650857
- 0.909848
- 0.140926
0.780644
1.158559