shelarcy
shela****@capel*****
2004年 6月 28日 (月) 08:15:06 JST
On Sun, 27 Jun 2004 21:14:20 +0900, shelarcy <shela****@capel*****> wrote: > どうやら cygwin を真似てこう定義したのが悪いようですが、 > > /* Ugly cliche for Win32. */ > #if defined(__CYGWIN__) || WIN32_NATIVE > # if defined(LIBGAUCHE_BODY) > # define SCM_EXTERN extern __declspec(dllexport) > # else > # define SCM_EXTERN extern __declspec(dllimport) > # endif > #else /*!__CYGWIN__ && !WIN32_NATIVE*/ > # define SCM_EXTERN extern > #endif /*!__CYGWIN__ && !WIN32_NATIVE*/ > > > 定義しないならしないで、こうなりますし…… > > > gcc.compile.c bin\gcc\debug\main.o > gcc.link bin\gcc\debug\gosh.exe > Info: resolving _Scm_PairClass by linking to __imp__Scm_PairClass > (auto-import) > d000033.o(.idata$5+0x0): multiple definition of `_imp__Scm_PairClass' > d000019.o(.idata$5+0x0): first defined here > d000033.o(.idata$6+0x0): multiple definition of `_nm__Scm_PairClass' > d000019.o(.idata$6+0x0): first defined here どうやら上の定義時に #define SCM_CLASS_DECL(klass) extern ScmClass klass を以下のように書き換えると問題はなくなるようですが、何かまずい点はあります か? #define SCM_CLASS_DECL(klass) SCM_EXTERN ScmClass klass -- shelarcy <shela****@capel*****> http://page.freett.com/shelarcy/