Bus errorとSegmentation faultに困ったら見るブログ

物理学者(ポスドク)による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【GSL】C言語でGSLライブラリを用いてコンパイルする際のリンクについて

(2011/02/18 追記)

研究室のMacにはGSLが導入されている。

 

GSLとは GNU Scientific Libraryの略で
numerical recipesに載っているプログラムが最初から使えるようなもので色んな計算の煩いを多少楽にしてくれる

 

詳しい導入の仕方などはこちら

na-inet.jp

 

で実際にコンパイルする際は、

gcc -I/usr/local/include-L/usr/local/lib -lgsl -lgslcblas

のようなリンクを貼らなければならない(環境によってlocalなどは変わる)
しかし、gccはデフォルトでヘッダファイルをusr/local/includeに見に行くのでもしGSLがデフォルトの場所にインストールされている場合は -I オプションは必要ない

 

しかしそれを確認するために

gcc -print-search-dirs

って打っても、gccがヘッダファイルを探しにいくディレクトリを表示させても /usr/local/includeとは書いてないんだよなぁー

 

www.asahi-net.or.jp

例外はディレクトリ`/usr/local/include'で、 ヘッダ・ファイルを探す際には、 コンパイラのインストール・ディレクトリにかかわらず、 このディレクトリが探索されます

最初から見に行くようになってるのかー納得ー