我正在尝试在我的Windows 10上使用http://instagram.com/developer/ 我用它来嗅探并直接向NIC注入数据包 我可以使用GOARCH = 386轻松编译和运行我的代码,但不能在GOARCH = amd64中。
值得注意的是:我不是在试图交叉编译 我正在使用go1.6.windows-386编译32位版本,当我尝试用GOARCH = amd64编译时,我使用go1.6.windows-amd64。
我使用TDM-GCC作为linux编译工具 该错误不是指示性的。它只是说
{{1}}
如果有可能,有人设法建立这个吗?
答案 0 :(得分:25)
好的,我已经弄清楚了。
要在Windows上编译gopacket 64bit,您需要执行以下操作:
现在重点是缺少linux静态库文件
lib / x64文件夹中的(libwpcap.a和libpacket.a)。我不知道为什么他们不是
包含在开发人员包中,但无论如何我们如何生成它们:
gendef wpcap.dll
和gendef packet.dll
运行gendef(可通过MinGW Installation Manager获得,包mingw32-gendef)dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libwpcap.a --input-def wpcap.def
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libpacket.a --input-def packet.def
那就是它。
现在gopacket应该编译没有问题。
答案 1 :(得分:0)
非常感谢您的解决方案,它为我节省了很多时间!
只需添加一下即可使用Npcap进行相同操作,修改gopacket源代码以指向Npcap,它也将起作用。
如果您不了解Npcap:
答案 2 :(得分:0)
我在Windows上以“ Wpcap API兼容模式”安装了Npcap,现在gopacket
可以正常工作。