C++もSTLやBoostを使うと、横着なプログラムが書けるので好きなのですが、ちょっとしたシミュレーションなどでぼけーっと適当なプログラムを書いていると、実行時のメモリ消費量が4Gを超えてしまい、code=12でmallocエラーが出てしまって、寂しい思いをしたりします。
g++でコンパイルするとき、-m64オプションを付ければ、プログラム自体はすぐに64ビット化できるのですが、Boostのライブラリ(program optionsなので動作に関係はないのですが・・・)を使っていて、これを32bitでビルドしていると、リンクできずにコンパイルに失敗します。 というわけで、Boostのビルドが必要なライブラリの64bit版がほしくなって、作ってみました。 ~/Downloads/boost_1_37_0$ あたりで、 ./configure --prefix=/usr/local/lib/x86_64 これで、自動的にtools/jam/src/bin.macosxx86/bjamがbuildされます。 直接bjamを使ってもよいのですが、せっかくMakefileがあるので、これを変更します。 2行目の BJAM_CONFIG= を、以下のように変更します。 BJAM_CONFIG=address-model=64 architecture=x86 これで、あとは普通に make sudo make install でOKです。 できるファイルは、32bit版と同じ名前になるので、ディレクトリで分けておいた方がいいかもしれません。 /usr/local/lib/x86_64/lib となって、なんか、かっこ悪いですが・・・ ちなみに、BoostのPython関係のライブラリのビルドには失敗します。 Pythonが64bitじゃないからかなーと勝手に思っていますが、原因を究明する元気がありません。 まあ、32ビット版使えばいいし。 スポンサーサイト
|
|
| ホーム |
|