[Fedora 11]
SourceForge.net Logo   MinGW クロスコンパイル用 GSL の入手先
  [LIB] GSL

GSL を利用したクロスコンパイル


はじめに

GSL (GNU Scientific Library) は、科学技術計算用 C ライブラリです。このライブラリは C 用にスクラッチから書き起こされ、API (Application Programming Interface) の形式でライブラリの各関数を利用できるようになっています。GSL のソースコードは GPL に従って配布されます。

GSL がカバーしている内容は実に広範で、以下の分野における数値計算のための関数が利用できます。

  • 初等関数
  • 複素数演算
  • 多項式
  • 特殊関数
  • ベクトル、行列計算
  • 置換
  • 組合せ
  • ソート
  • BLAS サポート
  • 線型代数
  • 固有値問題
  • 高速フーリエ変換
  • 数値積分
  • 乱数生成
  • 準乱系列生成
  • 乱数による確率分布
  • 確率統計
  • ヒストグラム
  • 多体問題
  • モンテカルロ積分
  • Simulated Annealing(焼きなまし)法
  • 常微分方程式
  • 補間
  • 数値微分
  • チェビシェフ近似
  • 級数収束加速
  • ウェーブレット変換
  • 離散ハンケル変換
  • 一次元方程式
  • 一次元最小化問題
  • 多次元方程式
  • 多次元最小化問題
  • 最小二乗近似
  • 非線型最小二乗近似
  • B スプライン
  • 物理定数
ページ先頭に戻る

クロスコンパイルとリンク

GSL のヘッダファイルは全て gsl ディレクトリに置かれています。したがってプリプロセッサ命令には、インクルード・ディレクトリとして gsl/ をヘッダファイル名の前につける必要があります。

#include <gsl/gsl_math.h>

なお、使用する関数の種類によってヘッダファイルが異なります。

Fedora の MinGW クロスコンパイル用 gcc、i686-pc-mingw32-gcc は、デフォルトでヘッダファイルを /usr/i686-pc-mingw32/sys-root/mingw/include に探しに行くため、GSL (mingw32-gsl) がデフォルトの場所にインストールされている場合は、-I オプションでヘッダファイルがあるディレクトリを指定する必要はありません。

$ i686-pc-mingw32-gcc -c -Wall sample.c

これで、オブジェクトファイル sample.o が生成されます。

GSL をリンクするには、libgsl.dll.a という libgsl-0.dll へのインポートライブラリと、GSL でサポートする標準的な線形代数ライブラリの cblas (libgslcblas.dll.a という libgslcblas-0.dll へのインポートライブラリ)を指定します。i686-pc-mingw32-gcc は、デフォルトでライブラリを /usr/i686-pc-mingw32/sys-root/mingw/lib に探しに行くため、GSL (mingw32-gsl) がデフォルトの場所にインストールされている場合は、-L オプションでライブラリがあるディレクトリを指定する必要はありません。

$ i686-pc-mingw32-gcc sample.o -lgsl -lgslcblas -lm -o sample.exe

スタティック・ライブラリにリンク場合は、-static をリンク時に付加します。

$ i686-pc-mingw32-gcc -static sample.o -lgsl -lgslcblas -lm -o sample.exe

コンパイル、リンクをするソースファイルが一つだけの場合は、コンパイルとリンクを一度に済ませてしまうことができます。

$ i686-pc-mingw32-gcc -Wall sample.c -lgsl -lgslcblas -lm -o sample.exe
ページ先頭に戻る

参考サイト

ページ先頭に戻る
(C) 2009 - 2017 Fuhito Suguri
クリエイティブ・コモンズ・ライセンス
This site by Fuhito Suguri is licensed under a Creative Commons 表示 - 継承 3.0 Unported License.
Ads by Sitemix