かそくそうち このページをアンテナに追加 RSSフィード

2008-06-06

[][]Boost SVN r45117 対応 23:22 Boost SVN r45117 対応 - かそくそうち を含むブックマーク はてなブックマーク - Boost SVN r45117 対応 - かそくそうち Boost SVN r45117 対応 - かそくそうち のブックマークコメント

Boost.Flyweightビルド時にコンパイルが通らず、久々にsvn updateしたらexec.jamが動かなくなっていたので直しておきました。

差分

importを追加しただけです。

ルールを別モジュールにIMPORTした場合、そのルールはIMPORT先のモジュール内で動作するため、ルールの動作に必要なモジュールが増える度に修正しないといけないのが問題です。保守性が悪いですね。

2008-04-01

[][]Boostまでインストールされる問題 00:13 Boostまでインストールされる問題 - かそくそうち を含むブックマーク はてなブックマーク - Boostまでインストールされる問題 - かそくそうち Boostまでインストールされる問題 - かそくそうち のブックマークコメント

#今日はネタサイトめぐりで無駄に時間を潰してしまったので、全然進んでません。


パッケージングした後で気が付いたんですが、Hamigaki 0.41.0をインストールすると、リンクに必要なBoostライブラリまでコピーされます。

どのみちビルド時のBoostと同じものをリンクしないと動かないので、ほとんど問題は起きないと思いますが、リンカ周りでエラーになったときはこの辺を疑ってみるとよいかもしれません。


そもそも、リリース手順を間違えて、タグを打った後でパッケージを作ってしまったので、今回のバージョンではこのままですが、将来的には直す予定です。

S.F.S.F. 2008/04/06 09:39 ひさしぶりに、hamigakiライブラリをBoost 1.35.0+VC9 Expressでビルドしてみたのですが、またしてもビルドできません。。。

0.事前にboost 1.35.0をインストール
1.Visual Studio 2008 コマンドプロンプトを起動
2.BOOST_ROOT環境変数を追加
設定値はboostの展開ディレクトリです。
BOOST_ROOT=c:/libs/boost_1_35_0/boost_1_35_0
3.ホームディレクトリにuser-config.jamを作成し、下記設定を追加
module
{
BZIP2_SOURCE = C:/libs/bzip2/bzip2-1.0.5.tar/bzip2-1.0.5 ;
ZLIB_SOURCE = C:/libs/zlib123-dll/source ;
BOOST_INCLUDE = c:/boost/include ;
BOOST_LIBPATH = c:/boost/lib ;
HAVE_ASIO = 1 ;
ASIO_INCLUDE = C:/libs/ASIOSDK2/common ;
}

import toolset : using ;
using msvc : 9.0 ;

4.ビルド
ビルド結果は下記のとおりです。
c:¥libs¥hamigaki_0_41_0>bjam --prefix=c:¥libs¥hamigaki install
指定されたパスが見つかりません。
c:/libs/boost_1_35_0/boost_1_35_0/tools/build/v2/build¥virtual-target.jam:996: i
n virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target: <pc:¥libs¥hamigaki¥lib>exact.lib
error: previous virtual target { common%common.hard-link-exact.lib.IMPORT_LIB {
common%common.copy-boost_filesystem-vc90-mt.lib.IMPORT_LIB { c:/boost/lib¥boost_
filesystem-vc90-mt.lib.IMPORT_LIB } } }
error: created from ./install-unversioned
error: another virtual target { common%common.hard-link-exact.lib.IMPORT_LIB { c
ommon%common.copy-boost_regex-vc90-mt.lib.IMPORT_LIB { c:/boost/lib¥boost_regex-
vc90-mt.lib.IMPORT_LIB } } }
error: created from ./install-unversioned
error: added properties: none
error: removed properties: none
c:/libs/boost_1_35_0/boost_1_35_0/tools/build/v2/build¥virtual-target.jam:453: i
n actualize-no-scanner from module object(file-target)@1996
c:/libs/boost_1_35_0/boost_1_35_0/tools/build/v2/build¥virtual-target.jam:118: in object(file-target)@1996.actualize from module object(file-target)@1996
c:/libs/boost_1_35_0/boost_1_35_0/tools/build/v2¥build-system.jam:675: in load f
rom module build-system
c:¥libs¥boost_1_35_0¥boost_1_35_0¥tools¥build¥v2/kernel¥modules.jam:267: in import from module modules
c:¥libs¥boost_1_35_0¥boost_1_35_0¥tools¥build¥v2/kernel/bootstrap.jam:132: in boost-build from module
c:¥libs¥hamigaki_0_41_0¥boost-build.jam:20: in module scope from module

単に私の知識不足だけかもしれませんが、上記エラーで何かわかることがあれば教えていただけないでしょうか...?
すいません。。。

y-hamigakiy-hamigaki 2008/04/06 09:54 > 指定されたパスが見つかりません。
bjamに-d2オプションを付けて実行してみてください。
これでbjamが実行するコマンド文字列が出力されるので、どのコマンドが見つからなかったのかが分かります。

S.F.S.F. 2008/04/06 10:34 ありがとうございます。やってみます。

S.F.S.F. 2008/04/06 11:27 -d2オプションで実行してみたところ、原因がわかりました。
BOOST_INCLUDEのパス設定が間違っていただけで修正したところ、minimamで問題なくビルドできました。
さらにcompleteすべく、user-config.jamに
module
{

BZIP2_SOURCE = C:/libs/bzip2/bzip2-1.0.5.tar/bzip2-1.0.5 ;
ZLIB_SOURCE = C:/libs/zlib123-dll/source ;
BOOST_INCLUDE = C:/Boost/include/boost-1_35 ;
BOOST_LIBPATH = c:/boost/lib ;
HAVE_ASIO = 1 ;
HAVE_DXSDK = 1 ;
ASIO_INCLUDE = C:/libs/ASIOSDK2/common ;
OGG_INCLUDE = C:/libs/libogg-1.1.3/include ;
OGG_LIBPATH = C:/libs/libogg-1.1.3/libs ;
VORBIS_INCLUDE = C:/libs/libvorbis-1.1.2/include ;
VORBIS_LIBPATH = C:/libs/libvorbis-1.1.2/libs ;
DXSDK_INCLUDE = ”C:/Program Files/Microsoft DirectX SDK (November 2007)/include” ;
DXSDK_LIBPATH = ”C:/Program Files/Microsoft DirectX SDK (November 2007)/Lib/x86” ;
}
を追加して、build-type=completeですべてビルドできました。
お騒がせしました。。。

2008-03-11

[]pkg-configの注意点 23:39 pkg-configの注意点 - かそくそうち を含むブックマーク はてなブックマーク - pkg-configの注意点 - かそくそうち pkg-configの注意点 - かそくそうち のブックマークコメント

X11版gl_test.cppのJamfileがいろいろバグっていたので修正しました。

差分

VMwareを落とした後でJamfile書いたので、テストしてませんでした。すみません。


GTK+2のコンパイルオプションを調べるために、

local gtk-cflags = [ SHELL "pkg-config --cflags gtk+-2.0" ] ;

としていたのですが、pkg-configの出力に改行が含まれているため、g++の引数が途中で切れてしまいました。

解決策は空白文字で文字列を分割するstring.wordsルールを使うことです。

import string ;
gtk-cflags = [ string.words $(gtk-cflags) ] ;

faith_and_bravefaith_and_brave 2008/03/11 23:17 なるほど。newで生成したインスタンスはコンストラクタの引数としてでも
push_backに渡してはいけない、ということですね

y-hamigakiy-hamigaki 2008/03/11 23:26 そうです。
shared_ptrは引数の指しているオブジェクトを(自身の初期化に失敗しても)破棄しなければならないと知っていますが、vectorにとってはただのポインタなのでオブジェクトが残ってしまう恐れがあるわけです。

2008-03-03

[]続 Bjamのオプション 22:58 続 Bjamのオプション - かそくそうち を含むブックマーク はてなブックマーク - 続 Bjamのオプション - かそくそうち 続 Bjamのオプション - かそくそうち のブックマークコメント

プロパティの書式/設定例とターゲットの説明を追加して、BBv2のオプションもいくつか書き足しました。

差分

http://hamigaki.sourceforge.jp/doc/html/bbv2/bjam-options.html

ちなみに、「gcc/link=static,shared」を「toolset=gcc/link=static,shared」と書くと、「toolset=gcc/link=static toolset=shared」と解釈されるので注意。(toolsetだけ扱いが特殊)


あと、BoostRegression TestsのSummaryで表の上の方にあるサイト名のリンクを辿ると、環境設定ファイルとコマンドラインの引数が載っているので参考になると思います。

2008-03-02

[]Bjamのオプション 00:19 Bjamのオプション - かそくそうち を含むブックマーク はてなブックマーク - Bjamのオプション - かそくそうち Bjamのオプション - かそくそうち のブックマークコメント

bjamのオプションについて書くのを忘れていたので書き始めました。

http://hamigaki.sourceforge.jp/doc/html/bbv2/bjam-options.html

「-d」オプションの意味調べるのに無駄に時間かけてしまいました。

肝心のプロパティの設定方法が書き足りないので、続きは明日書きます。


TODO:

  • プロパティの複雑な書式
  • BBv2オプションの追加