From: Alan Moyer Date: 2001-12-31T04:20:42+09:00 Subject: [ruby-talk:29750] Re: Extending Ruby on Windows platform using VC++ IDE Woops, I forgot the attachment. Here it is. Al "Alan Moyer" wrote in message news:_hJX7.44771$5W5.17865036@typhoon.ne.mediaone.net... > (Nobu, Sorry I responded to you first, rather than the group) > > I downloaded and installed Ruby version 1.6. > > Specifically, this is what I've been attempting to do: > > I downloaded an extension to connect to the mySQL DB engine from > http://tmtm.org/en/mysql/ruby/. I wasn't able to work with the extconf.rb > that came with the download, and not having gcc installed, so I tried to > just build a Windows DLL by making up a VC++ project to build a DLL that > compiles the source file that came with the download. The file is mysql.c > which I've attached. > > The Ruby distribution has a directory lib/ruby/1.6/i386-cygwin which > contains a bunch of header files including ruby.h. I set the project to look > in this dir for header files. > > When I compile w/o setting the NT flag, I get 55 compile errors. It appears > that rb_raise and many other symbols are not defined. When I add the NT > flag, I get the error that the header file win32/win32.h is not found. This > header is included in the ruby header file defines.h. The distribution of > Ruby I have does not contain the win32 subdirectory or the win32.h header. > I'm guessing that the undefined symbols are defined in that header file. > > Assuming that Someone can help me get past this problem, let me ask another > question. If I'm successful building a Windows DLL, should I just rename it > to have a .so extension which is the Unix convention? > > I notice that if I do a dumpbin /exports on any of the preexisting .so files > in the i386-cygwin dir, the only function being exported is the init > function. For example, for file socket.so, the exported function is > Init_socket. Is this what I should expect? > > Sorry for so many questions, > > Al > ----- Original Message ----- > From: > Newsgroups: comp.lang.ruby > Sent: Saturday, December 29, 2001 1:06 AM > Subject: Re: Extending Ruby on Windows platform using VC++ IDE > > > > Hi, > > > > At Sat, 29 Dec 2001 11:56:00 +0900, > > Alan Moyer wrote: > > > I'm extremely new to Ruby. I've been reading the Programming Ruby book. > Chap > > > 17 - Extending Ruby discusses how to write a Ruby extension, writing a > > > extconf.rb program and then running the make. However, the makefile is > for > > > the gcc compiler. > > > > Which version of ruby do you use? > > > > -- > > Nobu Nakada > > > > > begin 666 Mysql.c M+RH)2!M>7-Q;"!M;V1U;&4-"B J"21)9#H@;7ES<6PN8RQV(#$N,C@@ M,C P,2\Q,B\P,B P-SHU-SHP.2!T;VUM>2!%>' @) T*("HO#0H-"B-I;F-L M=61E(")R=6)Y+F@B#0HC:69D968@2$%615]-65-13%](#0HC:6YC;'5D92 \ M;7ES<6PN:#X-"B-I;F-L=61E(#QE7-Q;"]E2!!3$T@*B\-"F5X=&5R;B!604Q512!R8E]E4W1A;F1A M5]S=&]R90T* M(V1E9FEN90ER8E]O8FI?86QL;V,);V)J7V%L;&]C#0HC9&5F:6YE"7)B7VAA M7-Q;%]F:65L9%]C M;W5N= EM>7-Q;%]N=6U?9FEE;&1S#0HC96YD:68-"@T*(V1E9FEN92!.24QO M7!E M*&]B:BP@5%]$051!*2P@)B@H*'-T7-Q;"HI1$%405]05%(H;V)J M*2DM/FAA;F1L97(I*0T*(V1E9FEN92!'971->7-Q;%)E7!E*&]B:BP@5%]$051!*2P@*"AS=')U8W0@;7ES<6Q?7-Q;#L-"@T* M2D- M"GL-"B @("!I9B H;7DM/F-O;FYE8W1I;VX@/3T@471R=64I#0H);7ES<6Q? M8VQO7-Q;')EPT*(" @(&EF("AR97-P+3YF7-Q M;%]F7-Q;%]R86ES92A-65-13"H@;2D-"GL-"B @("!604Q512!E(#T@7-Q;%]E&-?7-Q;')E M7-Q;%]R97,L(# L(&9R965? M;7ES<6QR97,L(')E7-Q;$9I96QD(&]B:F5C= DJ+PT*PT* M(" @(%9!3%5%(&]B:CL-"B @("!604Q512!H87-H.PT*(" @(&EF("AF(#T] M($Y53$PI#0H)7-Q;$9I96QD*3L-"B @("!R8E]I=E]S970H;V)J+" B;F%M92(L(&8M M/FYA;64_(')B7W-TF4H7 [#0H@(" @5D%,544@;V)J.PT* M#0H@(" @;V)J(#T@1&%T85]-86ME7U-T7 I.PT*(" @(&UYPT*(" @(%9!3%5%(&AO3L-"B @("!S=')U8W0@;7ES<6PJ(&UY<#L-"B @("!604Q512!O8FH[ M#0H-"B-I9B!-65-13%]615)324].7TE$(#X](#,R,C P#0H@(" @2P@:"P@ M=2P@<"P@9"P@<' L(',L(&8I(#T]($Y53$PI#0HC96QI9B!-65-13%]615)3 M24].7TE$(#X](#,R,3$U#0H@(" @:68@*&UY2P@:"P@=2P@<"P@<' L(',I(#T] M($Y53$PI#0HC96YD:68-"@EM>7-Q;%]R86ES92@F;7DI.PT*#0H@(" @;V)J M(#T@1&%T85]-86ME7U-T7 I.PT*(" @(&UY<"T^:&%N9&QE7-Q;%]E7-Q;%]G971? M8VQI96YT7VEN9F\H*2D[#0I]#0H-"B-I9B!-65-13%]615)324].7TE$(#X] M(#,R,S,R#0HO*@EM>5]D96)U9RAS=')I;F7-Q;%]R96%L7V-O;FYE8W0H;2P@:"P@=2P@<"P@9"P@<' L(',L M(&8I(#T]($Y53$PI#0H);7ES<6Q?F4H*0DJ+PT*F4H:6YT(&%R9V,L(%9! M3%5%*B!A7-Q;%]C:&%N9V5?=7-E7-Q;%]C:&%R86-T97)?5]C;&]S92A604Q512!O8FHI#0I[#0H@(" @35E344PJ(&T@ M/2!'971(86YD;&5R*&]B:BD[#0H@(" @;7ES<6Q?8VQOPT*(" @ M($U94U%,*B!M(#T@1V5T2&%N9&QE7-Q;%]C MPT*(" @($U94U%,*B!M(#T@1V5T2&%N9&QE7-Q;%]D7-Q;%]R M86ES92AM*3L-"B @("!R971UPT*(" @ M($U94U%,*B!M(#T@1V5T2&%N9&QE7-Q;%]D M=6UP7V1E8G5G7VEN9F\H;2D@(3T@,"D-"@EM>7-Q;%]R86ES92AM*3L-"B @ M("!R971UPT*(" @(')E='5R M;B!)3E0R3E5-*&UY7-Q;%]G971?5]K:6QL*%9!3%5%(&]B:BP@5D%, M544@<&ED*0T*>PT*(" @(&EN="!P(#T@3E5-,DE.5"AP:60I.PT*(" @($U9 M4U%,*B!M(#T@1V5T2&%N9&QE7-Q;%]K:6QL M*&TL(' I("$](# I#0H);7ES<6Q?PT*(" @('5N7-Q;%]L:7-T7V1B7-Q;%]R86ES M92AM*3L-"@T*(" @(&X@/2!M>7-Q;%]N=6U?PT*(" @ M(%9!3%5%('1A8FQE+"!F:65L9#L-"B @("!-65-13"H@;2 ]($=E=$AA;F1L M97(H;V)J*3L-"B @("!-65-13%]215,J(')EPT*(" @($U94U%,*B!M(#T@1V5T M2&%N9&QEPT*(" @(%9!3%5%('1A8FQE.PT*(" @($U94U%,*B!M(#T@1V5T2&%N M9&QE5]S=&]R92AR970L M(&DL(')B7W1A:6YT961?7-Q;%]FPT*(" @($U94U%,*B!M(#T@1V5T M2&%N9&QE7-Q;%]S96QE8W1?9&(H;2P@4U12 M,D-35%(H9&(I*2 A/2 P*0T*"6UYPT*(" @($U94U%,*B!M(#T@1V5T2&%N9&QE7-Q;%]S=&%T*&TI.PT*(" @(&EF("AS(#T]($Y53$PI#0H);7ES M<6Q?PT*(" @($U94U%,*B!M M(#T@1V5T2&%N9&QE7-Q;%-T5]W M:71H7W)E5]W:71H7W)E5]W:71H7W)E5]W:71H7W)EPT*(" @(&EF("A465!%*&9L867!E+"!R97%U:7)E9"!TPT*(" @('-T7-Q;%]R M97,J(')E7-Q;%)E7-Q;%)E7-Q;%]N M=6U?9FEE;&1S*')E5]S=&]R92AR970L(&DL M(&UA:V5?9FEE;&1?;V)J*"9F6VE=*2D[#0H@(" @PT* M(" @($U94U%,7U)%4RH@7-Q;"P@(B5D.B!O=70@;V8@#H@)60I(BP@;BP@;6%X+3$I M.PT*(V5L7-Q;%]F971C:%]F M:65L9%]D:7)E8W0HPT*(" @($U94U%,7U)%4RH@7-Q;%)E7-Q;%]N=6U?9FEE;&1S*')E5]N973L-"B @("!U;G-I9VYE9"!I;G0@ M:3L-"B @("!C:&5C:U]F7-Q;%]F971C:%]L96YG=&AS*')E5]N97PT*(" @($U94U%,7U)% M4RH@7-Q;%)EPT*(" @(&-H M96-K7V9R964H;V)J*3L-"B @("!R971U7-Q;%]F:65L M9%]T96QL*$=E=$UYPT*(" @(&-H96-K7V9R964H;V)J*3L-"B @("!R971U7-Q;%]N=6U?9FEE;&1S*$=E=$UY6EE;&0H:&%S:"D[#0H@ M(" @7-Q;$9I96QD(&]B:F5C="!M971H;V0-"B J+PT* M#0HO*@EH87-H"2HO#0IS=&%T:6,@5D%,544@9FEE;&1?:&%S:"A604Q512!O M8FHI#0I[#0H@(" @5D%,544@:" ](')B7VAA7!E(BDL(')B7VEV7V=E="AO8FHL(")T>7!E(BDI.PT*(" @(')B7VAA M7-Q;$9I96QD M.B5S/B(L(%)35%))3D7!E*0T*1&5F:6YE37ES<6Q&:65L M9$UE;6)E7-Q;$9I96QD365M8F5R M365T:&]D*&UA>%]L96YG=&@I#0I$969I;F5->7-Q;$9I96QD365M8F5R365T M:&]D*&9L86=S*0T*1&5F:6YE37ES<6Q&:65L9$UE;6)E7-Q;$5RPT*(" @(')E='5R;B!R8E]I M=E]G970H;V)J+" B;65S9R(I.PT*?0T*#0IS=&%T:6,@5D%,544@97)R;W)? M97)R;F\H5D%,544@;V)J*0T*>PT*(" @(')E='5R;B!R8E]I=E]G970H;V)J M+" B97)R;F\B*3L-"GT-"@T*+RHM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM#0H@*@E);FET:6%L:7IE#0H@*B\-"@T*=F]I9"!);FET7VUY7-Q M;"(L(')B7V-/8FIE8W0I.PT*(" @(&-->7-Q;%)E7-Q;" ](')B7V1E9FEN95]C;&%S7-Q M;"P@(FEN:70B+"!I;FET+" P*3L-"B @("!R8E]D969I;F5?7-Q;"P@(G%U;W1E(BP@97-C M87!E7W-T7-Q;"P@ M(G)E86Q?8V]N;F5C="(L(')E86Q?8V]N;F5C=#(L("TQ*3L-"B @("!R8E]D M969I;F5?;65T:&]D*&-->7-Q;"P@(F-O;FYE8W0B+"!R96%L7V-O;FYE8W0R M+" M,2D[#0H@(" @7-Q;"P@(F5S8V%P95]S=')I;F7-Q;"P@(G%U;W1E M(BP@97-C87!E7W-T7-Q;"P@(F-L:65N=%]I;F9O(BP@8VQI96YT7VEN9F\L(# I M.PT*(" @(')B7V1E9FEN95]M971H;V0H8TUY7-Q;"P@(F-H86YG95]U7-Q;"P@(F-H87)A8W1E7-Q;"P@(F-L;W-E(BP@;7E?8VQO7-Q;"P@(F1R M;W!?9&(B+"!D7-Q;"P@(F5R7-Q;"P@(FAO2(L('%U97)Y+" Q*3L- M"B @("!R8E]D969I;F5?;65T:&]D*&-->7-Q;"P@(G)E9G)E7-Q;"P@(G)E;&]A M9"(L(')E;&]A9"P@,"D[#0H@(" @5]S:'5T9&]W;BP@,"D[#0H@ M(" @7-Q;"P@(G5S95]R97-U;'0B+"!U7-Q;"P@(G%U97)Y7W=I M=&A?7-Q;"P@(D]05%]#3TU04D534R(L($E.5#).54TH M35E344Q?3U!47T-/35!215-3*2D[#0H@(" @7-Q;"P@(D]05%].04U%1%]025!%(BP@24Y4,DY532A-65-13%]/4%1?3D%- M141?4$E012DI.PT*(" @(')B7V1E9FEN95]C;VYS="AC37ES<6PL("))3DE4 M7T-/34U!3D0B+"!)3E0R3E5-*$U94U%,7TE.251?0T]-34%.1"DI.PT*(" @ M(')B7V1E9FEN95]C;VYS="AC37ES<6PL(")214%$7T1%1D%53%1?1DE,12(L M($E.5#).54TH35E344Q?4D5!1%]$149!54Q47T9)3$4I*3L-"B @("!R8E]D M969I;F5?8V]N7-Q;"P@(E)%1E)%4TA?3$]'(BP@24Y4,DY532A2149215-(7TQ/1RDI.PT* M(" @(')B7V1E9FEN95]C;VYS="AC37ES<6PL(")2149215-(7U1!0DQ%4R(L M($E.5#).54TH4D5&4D532%]404),15,I*3L-"B-I9F1E9B!2149215-(7TA/ M4U13#0H@(" @7-Q;"P@(E)%1E)%4TA?2$]3 M5%,B+"!)3E0R3E5-*%)%1E)%4TA?2$]35%,I*3L-"B-E;F1I9@T*(VEF9&5F M(%)%1E)%4TA?4U1!5%53#0H@(" @7-Q;"P@ M(E)%1E)%4TA?4U1!5%53(BP@24Y4,DY532A2149215-(7U-405154RDI.PT* M(V5N9&EF#0HC:69D968@0TQ)14Y47T9/54Y$7U)/5U,-"B @("!R8E]D969I M;F5?8V]N7-Q;"P@(D-,245. M5%].3U]30TA%34$B+"!)3E0R3E5-*$-,245.5%].3U]30TA%34$I*3L-"B-E M;F1I9@T*(VEF9&5F($-,245.5%]#3TU04D534PT*(" @(')B7V1E9FEN95]C M;VYS="AC37ES<6PL(")#3$E%3E1?0T]-4%)%4U,B+"!)3E0R3E5-*$-,245. M5%]#3TU04D534RDI.PT*(V5N9&EF#0HC:69D968@0TQ)14Y47T]$0D,-"B @ M("!R8E]D969I;F5?8V]N7-Q M;%)E7-Q;%)E7-Q;%)E M7-Q;%)E7-Q;$9I M96QD(&]B:F5C="!M971H;V0@*B\-"B @("!R8E]D969I;F5?;65T:&]D*&-- M>7-Q;$9I96QD+" B;F%M92(L(&9I96QD7VYA;64L(# I.PT*(" @(')B7V1E M9FEN95]M971H;V0H8TUY7-Q;$9I96QD+" B9&5F M(BP@9FEE;&1?9&5F+" P*3L-"B @("!R8E]D969I;F5?;65T:&]D*&-->7-Q M;$9I96QD+" B='EP92(L(&9I96QD7W1Y<&4L(# I.PT*(" @(')B7V1E9FEN M95]M971H;V0H8TUY7-Q;$9I96QD+" B:&%S:"(L(&9I96QD7VAA7-Q;$9I96QD(&-O;G-T86YT.B!4 M65!%("HO#0H@(" @7-Q;$9I96QD+" B5%E0 M15]424Y9(BP@24Y4,DY532A&245,1%]465!%7U1)3EDI*3L-"B-I9B!-65-1 M3%]615)324].7TE$(#X](#,R,3$U#0H@(" @7-Q;$9I96QD+" B5%E015]%3E5-(BP@24Y4,DY532A&245,1%]465!%7T5. M54TI*3L-"B-E;F1I9@T*(" @(')B7V1E9FEN95]C;VYS="AC37ES<6Q&:65L M9"P@(E194$5?1$5#24U!3"(L($E.5#).54TH1DE%3$1?5%E015]$14-)34%, M*2D[#0H@(" @7-Q;$9I96QD+" B5%E015]3 M2$]25"(L($E.5#).54TH1DE%3$1?5%E015]32$]25"DI.PT*(" @(')B7V1E M9FEN95]C;VYS="AC37ES<6Q&:65L9"P@(E194$5?3$].1R(L($E.5#).54TH M1DE%3$1?5%E015],3TY'*2D[#0H@(" @7-Q M;$9I96QD+" B5%E015]&3$]!5"(L($E.5#).54TH1DE%3$1?5%E015]&3$]! M5"DI.PT*(" @(')B7V1E9FEN95]C;VYS="AC37ES<6Q&:65L9"P@(E194$5? M1$]50DQ%(BP@24Y4,DY532A&245,1%]465!%7T1/54),12DI.PT*(" @(')B M7V1E9FEN95]C;VYS="AC37ES<6Q&:65L9"P@(E194$5?3E5,3"(L($E.5#). M54TH1DE%3$1?5%E015].54Q,*2D[#0H@(" @7-Q;$9I96QD+" B5%E015]424U%4U1!35 B+"!)3E0R3E5-*$9)14Q$7U19 M4$5?5$E-15-404U0*2D[#0H@(" @7-Q;$9I M96QD+" B5%E015],3TY'3$].1R(L($E.5#).54TH1DE%3$1?5%E015],3TY' M3$].1RDI.PT*(" @(')B7V1E9FEN95]C;VYS="AC37ES<6Q&:65L9"P@(E19 M4$5?24Y4,C0B+"!)3E0R3E5-*$9)14Q$7U194$5?24Y4,C0I*3L-"B @("!R M8E]D969I;F5?8V]N7-Q;$9I96QD+" B5%E0 M15]$051%5$E-12(L($E.5#).54TH1DE%3$1?5%E015]$051%5$E-12DI.PT* M(VEF($U94U%,7U9%4E-)3TY?240@/CT@,S(Q,S -"B @("!R8E]D969I;F5? M8V]N7-Q;$9I96QD+" B5%E015]3150B+"!)3E0R3E5-*$9)14Q$7U194$5?4T54 M*2D[#0H@(" @7-Q;$9I96QD+" B5%E015]" M3$]"(BP@24Y4,DY532A&245,1%]465!%7T),3T(I*3L-"B @("!R8E]D969I M;F5?8V]N7-Q;$9I96QD+" B355,5$E0 M3$5?2T597T9,047-Q;$9I96QD+" B0DQ/0E]&3$%'(BP@ M24Y4,DY532A"3$]"7T9,047-Q;$9I96QD+" B6D52 M3T9)3$Q?1DQ!1R(L($E.5#).54TH6D523T9)3$Q?1DQ!1RDI.PT*(" @(')B M7V1E9FEN95]C;VYS="AC37ES<6Q&:65L9"P@(D))3D%265]&3$%'(BP@24Y4 M,DY532A"24Y!4EE?1DQ!1RDI.PT*(VEF9&5F($5.54U?1DQ!1PT*(" @(')B M7V1E9FEN95]C;VYS="AC37ES<6Q&:65L9"P@(D5.54U?1DQ!1R(L($E.5#). M54TH14Y535]&3$%'*2D[#0HC96YD:68-"B-I9F1E9B!!551/7TE.0U)%345. M5%]&3$%'#0H@(" @7-Q;$9I96QD+" B0554 M3U])3D-214U%3E1?1DQ!1R(L($E.5#).54TH05543U])3D-214U%3E1?1DQ! M1RDI.PT*(V5N9&EF#0HC:69D968@5$E-15-404U07T9,04<-"B @("!R8E]D M969I;F5?8V]N7-Q;"P@(F5R7-Q;"P@(D-27U-/0TM%5%]#4D5!5$5?15)23U(B+"!)3E0R3E5-*$-27U-/ M0TM%5%]#4D5!5$5?15)23U(I*3L-"B @("!R8E]D969I;F5?8V]N7-Q;"P@(D-27U=23TY'7TA/4U1?24Y&3R(L($E.5#). M54TH0U)?5U)/3D=?2$]35%])3D9/*2D[#0HC:69D968@0U)?3$]#04Q(3U-4 M7T-/3DY%0U1)3TX-"B @("!R8E]D969I;F5?8V]N7-Q;"P@(D-27U-%4E9%4E](04Y$4TA!2T5?15)2(BP@24Y4 M,DY532A#4E]315)615)?2$%.1%-(04M%7T524BDI.PT*(V5N9&EF#0HC:69D M968@0U)?4T525D527TQ/4U0-"B @("!R8E]D969I;F5?8V]N