Index: [Article Count Order] [Thread]

Date:  Mon, 29 Jul 2002 16:51:16 +0900
From:  Takayuki Matsuki <tmatsukijp@ybb.ne.jp>
Subject:  [analog-jp:01276] Re: Analog 5.24 を Mac OS X 10.1.5  で make した際の不具合
To:  analog-jp@jp.analog.cx
Message-Id:  <mid-1276-analog-jp@jp.analog.cx>
In-Reply-To:  <mid-1273-analog-jp@jp.analog.cx>
References:  <mid-1273-analog-jp@jp.analog.cx>
X-Mail-Count: 01276

松木です。

MURAKAMI Yukio <m_yukio@mac.com> wrote:
> さて、以前、Mac OS 9版Analogを利用していまして、Mac OS Xでも
> Analogを利用しようと考え、ソースをダウンロードして、makeしたの
> ですが、以下の内容のとおり、失敗しました。
 :
>  makeの警告文の内容:
>   /usr/bin/ld: warning unused multiple definitions of symbol _warn
>   utils.o definition of _warn in section (__TEXT,__text)
>   /usr/lib/libSystem.dylib(err.o) unused definition of _warn
> 
> おそらく、Mac OS XのライブラリとAnalogのwarn関数が多重定義とな
> って、コンパイルに失敗していると思うのですが、回避策をご存じの方は
> いらっしゃらないでしょうが?
> Analogのwarn関数を変名する手もあるのですが、よりスマートな手がな
> いかと考えまして、質問させていただきました。

手元に環境が無いので分かりかねますが、多分

$ nm /usr/lib/libSystem.dylib

とやって、warnの文字が頭にTがついて出てくると、これはlibSystem.dylib
中にerror関数が含まれていると言うことになりますから、村上さんの
言うとおりでしょう。(BSD系にnmコマンドがあるのか分かりませんが。)
もしかして、オプションに-Dが必要かもしれません。
このファイルを一時的に/usr/libからはずせばコンパイルできるかもしれま
せんが、今度は他の関数が読み込まれなくなって、コンパイルできないかも
しれませんね。

LIB=
と宣言しているにもかかわらず、/usr/lib/libSystem.dylibが読み込まれる
ということは、utils.cのヘッダーファイル(anlghea3.h)中に含まれている
標準ヘッダーファイルにerror関数の宣言が載っているということですか。