From: "H.Yamamoto" Date: 2004-08-16T11:26:26+09:00 Subject: [ruby-dev:24084] Re: to compile tcltklib (bcc32) 山本です。 "U.Nakamura" wrote: (2004/08/16 10:32) > #define matherr _matherr > >と書くだけでよかったりしませんか。 >(VC++ではmath.hにこの1行があります) これでリンクできました。 >私の手元のBC++だとこれもちゃんと > > Error: 外部シンボル '_matherr' が未解決(D:\HOME\USA\TMP\AAA.OBJ が参照) > >になります。 変数を参照しないと、最適化で消えてしまうみたいです。下のコードでは エラーになりました。(でも tcltklib.c でも参照していないのに???) #include #include extern int matherr(); int *tclDummyMathPtr = (int *) matherr; int main() { printf("%d\n", tclDummyMathPtr); return 0; } R:\>bcc32 f.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland f.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_matherr' が未解決(R:\F.OBJ が参照) R:\>bcc32 -Dmatherr=_matherr f.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland f.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland >でも #if !defined __MINGW32__ でmingw版で問題があるという話を >聞かないということは、あってもなくてもいいってことなんですか >ねえ。 コメントを見る限りでは Sun の問題のようなので、#if defined(sun) でいいのかも しれません。