shelarcy
shela****@capel*****
2004年 7月 13日 (火) 12:03:09 JST
On Mon, 12 Jul 2004 09:04:53 -0500, KIMURA Shigenobu <skimu****@mac*****> wrote: > On Jul 12, 2004, at 5:40 AM, shelarcy wrote: >> >> そこからの連想で以下のように定義してやれば gc.dll がインポートできるだろ >> うと思ったのですが、成功しませんでした。 > > この変更はいいんじゃないですか? libgauche にマージするなら > gc もlibgauche の一部になるわけですから、libgauche 内のファイルから > も GC_BUILD 付きで gc.h をインクルードすればいいんだと思います。 確かにこの変更だけなら問題はありませんね。patch を投げておきます。 --- C:\develop\Gauche-0.8\gc\include\gc_config_macros.h.1~ Tue Jul 15 20:10:30 2003 +++ C:\develop\Gauche-0.8\gc\include\gc_config_macros.h Tue Jul 13 00:35:18 2004 @@ -119,9 +119,9 @@ #if defined(__MINGW32__) && defined(GC_DLL) # ifdef GC_BUILD -# define GC_API __declspec(dllexport) +# define GC_API extern # else -# define GC_API __declspec(dllimport) +# define GC_API extern __declspec(dllimport) # endif #endif ただ、それだけでは windows ではまだマージはできません。 gcc.link.dll gauche\bin\gcc\release\gauche.dll gauche\bin\gcc\release\list.o(.text+0x8):list.c: undefined reference to `GC_allocate_ml' gauche\bin\gcc\release\list.o(.text+0x39):list.c: undefined reference to `GC_allocate_ml' gauche\bin\gcc\release\list.o(.text+0x74):list.c: undefined reference to `GC_allocate_ml' gauche\bin\gcc\release\list.o(.text+0xa9):list.c: undefined reference to `GC_allocate_ml' gauche\bin\gcc\release\list.o(.text+0xdd):list.c: undefined reference to `GC_allocate_ml' gauche\bin\gcc\release\list.o(.text+0xf4):list.c: more undefined references to `GC_allocate_ml' follow misc.c 内の #ifdef THREADS 内で #error "Yes, we're here!" を置いた結果、直 前で #define THREADS をしない限り #ifdef THREADS も if defined(GC_WIN32_THREADS) も 有効にならないことからどこかで undef されているんじゃないかと思われますが、 定 義したらしたで 68 行目の --> declare allocator lock here で引っかかってしま う ので、そこをどううまく定義するべきかが思案のしどころ。 >> なかなかうまく動かなくてしんどいでしょうが、一段づつ「問題の分離→解決」 >> の手順を踏んでゆくしかないのがこの世界です。ソースコードでどこ何をやって >> る >> のか、等の話はできる限り説明しますので、気長に行きましょう。 > > まぁ、闇雲に突進していって様子をうかがうのも後からまとまった資料に > あたるときに理解の助けになるとは思うのですが、shelarcy さんもそろそろ > 理由も考えずただこうしたらエラーが出た、エラーが減ったと一々 ML に > 報告するのでなく、なんでエラーになったのかなぜエラーが減ったのか、 > 資料にあたってきっちり考えてから ML に報告してくれるとありがたいです。 > せめて丸一日、自分で考え、調べてから。 > 移植作業をしてるのは shelarcy さんなんですから。 patch を提出したあたりから勢いづいて、エラーが減る度に報告してしまって いたようです。すみません。 -- shelarcy <shela****@capel*****> http://page.freett.com/shelarcy/