• [rcssserver][rcssmonitor] 64ビットOS 対応. (akiyama) 15:42:51

モニタプロトコルに使われる変数型を修正して,64ビットOSに対応した. これまで64ビットOSで不具合が発生していた原因は,long型のサイズが異なっていたため(詳細). よって,これまで short型とlong型だった変数を,サイズが固定された整数型にしてやれば良い.

stdint.h を使いたいところだけど,環境によってはサポートが不完全かもしれないので使うわけにはいかない. Autoconfでも AC_TYPE_INT32_T が追加されたのは 2.59c かららしいので,かなり最近. Autoconf Macro Archiveには, ac_define_integer_bitsax_create_stdint_hなんてものもあるけど,rcssbaseとrcssserverはもうBoostを使うことが前提なので,boost::cstdint で代用する方がお手軽で良いでしょう.

しかし,boost::int16_t と boost::int32_t をコード中に逐一埋め込んでは,将来stdint へ移行する際に面倒なことになるので,以下の typedef を宣言.

typedef  boost::int16_t  Int16;
typedef  boost::int32_t  Int32;

後は,各構造体やコード中に含まれる宣言を置換するだけ.

  • [rcssbase] make dist 問題 続き. (akiyama) 17:50:24

configure時に以下のオプションを与えると,make dist できるようになった.

$ ./configure --enable-ltdl-install

このオプションを指定しないと, AC_LIBLTDL_CONVENIENCE マクロが実行されて,コンビニエンスライブラリが使用されることになる. そして,インストール可能なバージョンのlibltdlは選択されない.

自分で書いてて意味が分からないが,要するに,パッケージに libltdl ディレクトリが含まれなくなるということらしい. って,それじゃダメじゃないか.

うーん,分からん.とにかく,もうちょっと調べてみる.

  • [rcssbase] libtoolメモ (akiyama) 20:28:06

Windowsへの移植に役立つかもしれない情報.
http://www.jaist.ac.jp/~kiyoshiy/memo/autoconf.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1314d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.