ライブラリが見えずコンパイルできないエラー
ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status
のエラーが出てコンパイルできない問題。ググってみると、ライブラリlibcfitsio.aのパスを-L/opt/local/lib/ などと指定してやれば解決するぜ、ってのばっかりなんだけど、これでは解決せず、途方に暮れていた。
解答はここにあった。
静的ライブラリ (.a) の作成と利用
http://www.yunabe.jp/docs/static_library.html
静的ライブラリをリンクする場合は、引数で与える静的ファイルやオブジェクトファイルの順序が重要になります。 基本的にはAがBに依存しているなら、AをBの前に引数で与えなくてはなりません。
知らんかった…まさか引数に順序があったなんて…orz
ということで、
$ gfortran-mp-6 -lm -L/opt/local/lib/ cookbook.fとかやってたのを
$ gfortran-mp-6 -lm cookbook.f /usr/local/cfitsio/libcfitsio.aとやったらスパッと通った!