Pcap et Windows

Bonjour à tous,

je postes car je suis au bord de la crise!!!
j’ai besoin pour le taf d’utiliser ruby avec la librerie pcap, mais sous
win32 !!!

j’ai bien installé ruby pour windows(1.8),
mais pour la partie pcap … c’est pas encore ca !!

j’ai téléchargé ruby-pcap-0.6
mais quand j’essais de l’installé il me donne ca !

extconf.rb
checking for socket() in socket.lib… no
checking for gethostbyname() in xnet.lib… no
checking for hstrerror()… no
checking for pcap.h… no
*** D:/temp pcap/pcap/pcap/extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–srcdir=D:/temp pcap/pcap/pcap
–curdir
–ruby=C:/Program Files/ruby/bin/ruby
–with-pcap-dir
–without-pcap-dir
–with-pcap-includedir
–without-pcap-includedir
–with-pcap-libdir
–without-pcap-libdir
–with-socketlib
–without-socketlib
–with-xnetlib
–without-xnetlib

et bien sur, si je lance mon script ca donne ca :

C:/Program
Files/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in em_original_require': no such file to load -- pcap (LoadError) from C:/Program Files/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_requie.rb:27:inrequire’
from D:/test1.rb:2

Merci de m’aidé,
ca serait vraiement cool de votre part !!!

On Nov 11, 2007 11:05 AM, Newguy N. [email protected]
wrote:

mais pour la partie pcap … c’est pas encore ca !!
Could not create Makefile due to some reason, probably lack of
–with-make-prog
–without-socketlib
`require’
from D:/test1.rb:2

Comme le dit le message d’erreur lors de la compilation de la partie C
de pcap, il te manquerais peut-être une librairie externe que link ce
code C. Consulte ce fichier pour avoir plus d’info : mkmf.log. Tant
que la compilation n’aura pas fonctionné, tu ne pourras pas avoir de
module dans ruby.

PS : Ce problème n’est pas spécifique à Rails il serait peut-être plus
intéressant d’en parler sur la liste ruby-fr.


Cyril M.

je comprends pas tt !!!
ruby s’appuie sur du C?
et ou on met les libréries???
je les ai mis ici : “C:\Program Files\ruby\lib\pcap”
et enfin les lib doivent avoir quelles extentisions ? .h .xaml .rb ???

sinon le log mkmf.log donne ca

merci d’avance

have_library: checking for socket() in socket.lib…
-------------------- no

“cl -nologo -Feconftest -I. -I"C:/Program
Files/ruby/lib/ruby/1.8/i386-mswin32” -ID:/temp pcap/pcap/pcap
-I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32"
-I/usr/local/include conftest.c msvcrt-ruby18-static.lib socket.lib
oldnames.lib user32.lib advapi32.lib ws2_32.lib -link -L/usr/local/lib
-libpath:“C:/Program Files/ruby/lib” -stack:0x2000000"
checked program was:
/* begin /
1: #define WIN32_LEAN_AND_MEAN
2: #include <winsock2.h>
3: #include <windows.h>
4:
5: /top/
6: int main() { return 0; }
7: int t() { void ((volatile p)()); p = (void (()()))socket; return 0;
}
/
end */

“cl -nologo -Feconftest -I. -I"C:/Program
Files/ruby/lib/ruby/1.8/i386-mswin32” -ID:/temp pcap/pcap/pcap
-I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32"
-I/usr/local/include conftest.c msvcrt-ruby18-static.lib socket.lib
oldnames.lib user32.lib advapi32.lib ws2_32.lib -link -L/usr/local/lib
-libpath:“C:/Program Files/ruby/lib” -stack:0x2000000"
checked program was:
/* begin /
1: /top/
2: int main() { return 0; }
3: int t() { socket(); return 0; }
/
end */


have_library: checking for gethostbyname() in xnet.lib…
-------------------- no

“cl -nologo -Feconftest -I. -I"C:/Program
Files/ruby/lib/ruby/1.8/i386-mswin32” -ID:/temp pcap/pcap/pcap
-I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32"
-I/usr/local/include conftest.c msvcrt-ruby18-static.lib xnet.lib
oldnames.lib user32.lib advapi32.lib ws2_32.lib -link -L/usr/local/lib
-libpath:“C:/Program Files/ruby/lib” -stack:0x2000000"
checked program was:
/* begin /
1: #define WIN32_LEAN_AND_MEAN
2: #include <winsock2.h>
3: #include <windows.h>
4:
5: /top/
6: int main() { return 0; }
7: int t() { void ((volatile p)()); p = (void (()()))gethostbyname;
return 0; }
/
end */

“cl -nologo -Feconftest -I. -I"C:/Program
Files/ruby/lib/ruby/1.8/i386-mswin32” -ID:/temp pcap/pcap/pcap
-I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32"
-I/usr/local/include conftest.c msvcrt-ruby18-static.lib xnet.lib
oldnames.lib user32.lib advapi32.lib ws2_32.lib -link -L/usr/local/lib
-libpath:“C:/Program Files/ruby/lib” -stack:0x2000000"
checked program was:
/* begin /
1: /top/
2: int main() { return 0; }
3: int t() { gethostbyname(); return 0; }
/
end */


have_func: checking for hstrerror()… -------------------- no

“cl -nologo -Feconftest -I. -I"C:/Program
Files/ruby/lib/ruby/1.8/i386-mswin32” -ID:/temp pcap/pcap/pcap
-I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32"
-I/usr/local/include conftest.c msvcrt-ruby18-static.lib oldnames.lib
user32.lib advapi32.lib ws2_32.lib -link -L/usr/local/lib
-libpath:“C:/Program Files/ruby/lib” -stack:0x2000000"
checked program was:
/* begin /
1: #define WIN32_LEAN_AND_MEAN
2: #include <winsock2.h>
3: #include <windows.h>
4:
5: /top/
6: int main() { return 0; }
7: int t() { void ((volatile p)()); p = (void (()()))hstrerror; return
0; }
/
end */

“cl -nologo -Feconftest -I. -I"C:/Program
Files/ruby/lib/ruby/1.8/i386-mswin32” -ID:/temp pcap/pcap/pcap
-I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32"
-I/usr/local/include conftest.c msvcrt-ruby18-static.lib oldnames.lib
user32.lib advapi32.lib ws2_32.lib -link -L/usr/local/lib
-libpath:“C:/Program Files/ruby/lib” -stack:0x2000000"
checked program was:
/* begin /
1: /top/
2: int main() { return 0; }
3: int t() { hstrerror(); return 0; }
/
end */


have_header: checking for pcap.h… -------------------- no

“cl -nologo -E -I. -I"C:/Program Files/ruby/lib/ruby/1.8/i386-mswin32”
-ID:/temp pcap/pcap/pcap -I/usr/local/include conftest.c -P"
checked program was:
/* begin /
1: #include <pcap.h>
/
end */


On Nov 11, 2007 11:29 AM, Newguy N. [email protected]
wrote:

je comprends pas tt !!!
ruby s’appuie sur du C?
et ou on met les libréries???
je les ai mis ici : “C:\Program Files\ruby\lib\pcap”
et enfin les lib doivent avoir quelles extentisions ? .h .xaml .rb ???

Ruby est complétemet rédigé en C. Après il y a bien sûr des
implémentations dans d’autre language comme Java avec JRuby.

Au niveau de Pcap s’agit d’une librairie qui a une extension en C pour
améliorer les performances en général. Il faut donc compiler cette
extension C pour avoir un fichier .o qui sera consulter par la
librairie Ruby.

En regardant tes logs il manque à peut près toutes les lib systèmes.
Je pense donc qu’il te manque tout simplement un compilateur C.
Aprèstu peux essayer de trouver ue version compilé. C’est dommage pour toi
qu’il n’y ai pas de gem.


Cyril M.