[MUSASHI-users 396] Re: MUSASHI-CORE-1.0.4-pre4

Back to archive index

Yukinobu Hamuro hamur****@adm*****
2004年 10月 18日 (月) 12:47:55 JST


神嶌先生、羽室です。

mssOption.hのOptSELにて、なぜ構造体オブジェクト(OptSEL)を指定していたか不明なのですが、
ここでは構造体の宣言のみすべきところでした。

struct OptSEL {
  enum OptType  type;    /*オプションタイプ*/
  char         *keyWord; /*キーワード文字*/
  :
} OptSEL;
  ~~~~~~
そこで上記のオブジェクトOptSELを削除すればコンパイルできました。

ご指摘ありがとうございました。

ただ、agmというコマンドにてxmlReadFile関数を利用しており、「関数プロトタイプ宣言が見つからない」との警告が出ます。
リンクは問題なく、かつ動作もOKです。
MacOSでのlibxml2のバージョンが古いためでしょうか(バージョンの確認方法はわかりませんでした)。
libxml2-2.6以上でしたらparser.hにxmlReadFile関数のプロトタイプ宣言が含まれているのですが。。。
とりあえずは動作上問題なかったので、pre5としてリリースしておきました。

よろしくお願いします。


Toshihiro KAMISHIMA さんは書きました:
>羽室先生
>
>神嶌です
>
>お世話になっています
>
>羽室> MacOSでコンパイルを試みてはいるのですが、一筋縄ではいかないようです。
>羽室> どなたか情報をお持ちであればお知らせ願います。
>羽室> どうもlibtoolに問題がありそうです。
>
>一応,やっつけで MacOS X 10.3.5 でコンパイルはとおりました.
>
>修正点は,lib/include/musashi/mssOption.h の 
>struct OptSEL { 
>>static struct OptSEL { 
>とすれば,"static と宣言しているが使ってないよ" エラーが多発しますが,コンパ
>イルできました.
>
>MacOSXのdynamic ライブラリですが,Linuxなどはプログラムをロードしたときに,
>関数の呼び出しアドレスの割り当てを全部やってしまう(ですよね?)のですが,
>Photoshopなどの超重量級アプリだと起動に時間がかかってしまうので,この割り当
>てを実際に関数を呼び出すまで先延しににするらしいです.そのせいで,大域シンボ
>ルのコンフリクトにはうるさくなっているらしいです.
>
>こちらのOptSELはstatic がなくオブジェクトのローカルではなく大域変数として,
>複数のオブジェクトで定義されています.そのせいで,同じ名前で定義された大域変
>数がたくさん見えるので,リンクするときどれをリンクすべきかよくわからないと言っ
>ているようです.
>
>抜本的な解決としては .h ファイルは定義だけ書き,ライブラリ内に一つ大域変数と
>して struct OptSEL の領域を確保するのが正攻法のような気がします.
>
>それでは失礼します.
>
>---
>神嶌  敏弘
>Toshihiro KAMISHIMA
>e-mail: toshi****@kamis*****
>_______________________________________________
>MUSASHI-users mailing list
>MUSAS****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/musashi-users
>

----
Yukinobu Hamuro  hamur****@adm*****



MUSASHI-users メーリングリストの案内
Back to archive index