shelarcy
shela****@capel*****
2004年 6月 13日 (日) 02:03:55 JST
On Fri, 04 Jun 2004 13:55:05 -1000 (HST), Shiro Kawai <shiro****@lava*****> wrote: >> undefined reference to `_imp__GC_malloc_atomic' のエラーの原因って >> 何でしょうか? > > これは外部のDLLのシンボルへの参照がうまくいってない時に見ますね。 > GCのコードが __declspec(dllimport) つきでコンパイルされちゃってるのかな。 > GCのコードはlibgauche.dll内に一緒に含まれるので、load.c等のコンパイル > 時には__declspec(dllimport)無しで参照されている必要があると思います。 gc_config_macros.h での定義のせいでした。 #if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL) # define GC_DLL #endif #if defined(__MINGW32__) && defined(GC_DLL) # ifdef GC_BUILD # define GC_API __declspec(dllexport) # else # define GC_API __declspec(dllimport) # endif #endif すると、GC_BUILD を define すればいいはずですが、なぜか手元の Boost.Build では static library にはなるのに、 dynamic library にはならないというあり さま。 どうしてかな? -- shelarcy <shela****@capel*****> http://page.freett.com/shelarcy/