MacPortsでコンパイラを変更してビルドエラーを回避

コンパイルがうまくいかないパッケージは使用するコンパイラを手動で切り替えたらうまくいった。ビルドに使用するコンパイラを切り替える方法はここで説明されている。

コンパイラを変更してビルドするときは、必ずビルドの前にcleanを実行すること。たとえば

sudo port clean emacs-app

emacs-appはapple-gcc42を使用したらビルドできた。+universalをつけるとコンパイルできなかった。

sudo port install emacs-app configure.compiler=apple-gcc-4.2

apple-gcc42をインストールしていない場合は、それも入れること。自動では依存性を解決してくれないようだ。これも+universalはビルド出来なかった。

sudo port install apple-gcc42


LionになってOpenMPIがなぜか削除されてしまったので、MacPortsでOpenMPIをインストール。デフォルトのコンパイラだとビルド出来ない。

sudo port install openmpi +gcc44 configure.compiler=macports-gcc-4.4

もし+gcc45にするなら、configure.compiler=macports-gcc-4.5にすること。ちなみに、使用するときはmpicc, mpicxx, mpirunなどは、openmpicc, openmpicxx, openmpirunなどに名前が変わっているので注意。前の名前でシンボリックリンクを作っておくと良いかも。


GnuplotwxWidgets出力をする方法がわからなかったのだけど、やっとできた。

sudo port install gnuplot +wxwidgets build_arch=i386 configure.compiler=apple-gcc-4.2

起動したら

set term wxt

wxwidgets出力になる。でもやってみたら、ウィンドウがまったく反応しない。使えない…


MacPortsからすこしずれるけれど、wxPythonはどうしてもMacPortsではインストールできなかった。公式サイトからダウンロードする。

pythonのバージョンが指定されているようなので、使うバージョンのpythonMacPortsで入れておくこと。32bitで起動する必要があるので+universalをつけてビルドする。あと、wxWidgetsMacPortsでいれておく。
そしたら先ほどダウンロードしたwxPythonをインストール。
wxPythonが扱えるバージョンのpythonを次のように起動する。

arch -i386 python2.6

arch -i386は64bitとしてではなく32bitで起動させるという意味。おそらくPythonUniversal Binaryでビルドしていないとだめ。
pythonの中で

import wx

をして、何もエラーがでなければ、正常にインストールされた証拠。
pythonGUIを作れるようになったので、何かつくろうかなあ。