pynetwork / pypcap

pypcap - python libpcap module, forked from code.google.com/p/pypcap
Other
299 stars 74 forks source link

[Windows][Install] Locating wpcap.lib fails on python x64 #62

Open dwendt opened 6 years ago

dwendt commented 6 years ago

Windows users running Python2.7 AMD64 following the instructions to extract the SDK and install will see:

    pcap.obj : warning LNK4197: export 'initpcap' specified multiple times; using first specification
       Creating library build\temp.win-amd64-2.7\Release\pcap.lib and object build\temp.win-amd64-2.7\Release\pcap.exp
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_freecode referenced in function __pyx_pf_4pcap_3bpf_4__dealloc__
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_close referenced in function __pyx_pf_4pcap_4pcap_32__dealloc__
    pcap_ex.obj : error LNK2001: unresolved external symbol __imp_pcap_close
    pcap.obj : error LNK2019: unresolved external symbol __imp_bpf_filter referenced in function __pyx_pf_4pcap_3bpf_2filter
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_snapshot referenced in function __pyx_pf_4pcap_4pcap_7snaplen___get__
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_datalink referenced in function __pyx_pf_4pcap_4pcap_12datalink
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_geterr referenced in function __pyx_pf_4pcap_4pcap_24geterr
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_stats referenced in function __pyx_pf_4pcap_4pcap_26stats
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_freealldevs referenced in function __pyx_pf_4pcap_4findalldevs
    pcap_ex.obj : error LNK2001: unresolved external symbol __imp_pcap_freealldevs
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_findalldevs referenced in function __pyx_pf_4pcap_4findalldevs
    pcap_ex.obj : error LNK2001: unresolved external symbol __imp_pcap_findalldevs
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_lookupnet referenced in function __pyx_pf_4pcap_6lookupnet
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_open_live referenced in function __pyx_pf_4pcap_4pcap___init__
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_open_offline referenced in function __pyx_pf_4pcap_4pcap___init__
    pcap_ex.obj : error LNK2001: unresolved external symbol __imp_pcap_open_offline
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_setfilter referenced in function __pyx_pf_4pcap_4pcap_4setfilter
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_compile referenced in function __pyx_pf_4pcap_4pcap_4setfilter
    pcap_ex.obj : error LNK2001: unresolved external symbol __imp_pcap_compile
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_dispatch referenced in function __pyx_pf_4pcap_4pcap_18dispatch
    pcap.obj : error LNK2019: unresolved external symbol __imp_pcap_sendpacket referenced in function __pyx_pf_4pcap_4pcap_22sendpacket
    pcap_ex.obj : error LNK2019: unresolved external symbol __imp_pcap_setmintocopy referenced in function pcap_ex_immediate
    pcap_ex.obj : error LNK2019: unresolved external symbol __imp_pcap_getevent referenced in function pcap_ex_fileno
    pcap_ex.obj : error LNK2019: unresolved external symbol __imp_pcap_next_ex referenced in function pcap_ex_next
    build\lib.win-amd64-2.7\pcap.pyd : fatal error LNK1120: 19 unresolved externals

because it tries to link the (default) x86 libraries.

A working workaround is to replace the existing .lib files in the pypcap-master\wpdpack\Lib folder with the .lib files from pypcap-master\wpdpack\Lib\x64. Compilation will then succeed.