这两天开始搞网络课程设计,要用到libnet去构造数据包。又因为是做某个网络游戏的分析,所以得在windows下面做。
于是开始倒腾。
先从sourceforge上下载了libnet 0.10.11版,用于Windows的是个zip包,然后解压出来放桌面上。
在几个文件夹里翻翻,看了看readme,发现丫居然要手动编译。还好已经有批处理写好了直接用就行。
按照readme里面的说法,我把batfiles/msvcmake.bat复制到../里面,然后双击运行。
报错:

cl 不是内部或外部命令,也不是可运行的程序或批处理文件。

这个错误再正常不过了,环境变量没设置好。。

打开计算机-属性-高级系统设置-环境变量,在用户变量的PATH里加上F:\Visual Studio 9.0\VC\bin。

再执行,错误一堆,全是找不到头文件的错误。
头文件应该是放在哪个环境变量里面呢?这个问题在windows里面我还真不知道,经过一番搜索,原来要新建一个include环境变量和一个lib环境变量。include环境变量里面放F:\Visual Studio 9.0\VC\include,lib里面放F:\Visual Studio 9.0\VC\lib(废话)

然后再编译,又找不到某个头文件了。是Windows.h找不到。Windows.h又在哪里?这个问题真心蛋疼。后来想出一个妙招,打开VS,新建一个工程,输入#include <windows.h>,然后把光标移动到<windows.h>里面,在上面的提示栏立刻出来了:

好,把这个值(C:\Program Files\Microsoft SDKs\Windows\v6.0A\include)加入到include环境变量中。同理要在lib环境变量中加入C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib。

编译通过,在lib目录中生成了libnet.lib,好,把它放到F:\Visual Studio 9.0\VC\lib中,然后把include目录的libnet.h放到F:\Visual Studio 9.0\VC\include中(也是废话)。

在VS中新建工程,尝试使用test中的代码进行测试。
结果编译报错,报了一堆link错误,估计又是找不到库了。折腾了半天不知道怎么改,后来在libnet源码的batfiles的目录中的exe.bat中找到了救命稻草:

cl /DTARGET_MSVC /MD /O2 /nologo /I../include %1.c ../lib/libnet.lib wsock32.lib

估计就是链接的时候需要额外指定库文件。
在程序中加入

1
2
#pragma comment(lib,"libnet.lib")
#pragma comment(lib,"wsock32.lib")

即可。
终于搞定了。

Windows平台下libnet的编译、安装以及使用相关推荐

  1. windows平台下TensorFlow的各种安装不成功

    1.卸载前面安装的 后来我看到一则信息说:16年后tensorflow 1.2版本才能用在windows上: 安装命令:pip install tensorflow==1.2,安装成功 借鉴https ...

  2. ubuntu平台下ffmpeg的编译安装方法

    FFmpeg是一套可以用来记录.转换数字音视频,并能将其转化为流的开源计算机程序.它包括了目前领先的音/视频编码库libavcodec等. libavformat :用于各种音视频封装格式的生成和解析 ...

  3. Windows 平台下 Go 语言的安装和环境变量设置

    1. Go 语言 SDK 安装包下载和安装 最新稳定版 1.5.3 安装包 go1.5.3.windows-amd64.msi下载地址 https://golang.org/dl/,大小约 69 MB ...

  4. Windows平台下Go语言的安装和环境变量设置

    1. Go 语言 SDK 安装包下载和安装 最新稳定版 1.5.3 安装包 go1.5.3.windows-amd64.msi下载地址 https://golang.org/dl/,大小约 69 MB ...

  5. windows平台下vlc编译之十三:vlc1.1.0编译

    请移步https://higoge.github.io/,所有下载资料在那个博客都能找到.谢谢. --------------------------------------------------- ...

  6. windows平台下vlc编译

    转自:http://jeremiah.blog.51cto.com/539865/114190     Jeremiah刚刚工作几个月,参与的第一个项目是与视频监控有关,分配给我的任务就是用开源的vl ...

  7. windows平台下VLC2.0.5编译

    windows平台下VLC2.0.5编译说明 时隔一年多,又要搞流媒体了,不过这次是要做流媒体服务器. 暂时决定使用vlc+ffmpeg+live555,虽然听有些前辈说这个组合的性能较差,只能作为学 ...

  8. windows平台下vlc编译之六:vlc-0.9.8a的编译

    请移步https://higoge.github.io/,所有下载资料在那个博客都能找到.谢谢. --------------------------------------------------- ...

  9. Windows平台下Makefile学习笔记

    来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开发,但我还没安 ...

最新文章

  1. a.cmd 文件里的内容
  2. 算法岗一片红海,如何选择适合自己的方向?
  3. Oracle-AWR管理包DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
  4. 日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}和{0:yyyy-MM-dd hh:mm:ss.fff}的区别
  5. 解决spark on yarn报错:File /tmp/hadoop-root/nm-local-dir/filecache does not exist
  6. jsapi.php必须传openid,【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = JSAPI支付必须传openid...
  7. python台风动图绘制_使用Python绘制台风轨迹图的示例代码
  8. 现代软件工程系列 学生读后感 梦断代码 DTSlob (1)
  9. 投资数据中心所考虑的重要因素
  10. cookie可存的最大限制_一文梳理Web存储,从cookie,WebStorage到IndexedDB
  11. opengl 加载贴图Unknown DIB file format问题
  12. yanqiyetan V1.0 存档
  13. Mscomm32.ocx注册
  14. 根据城市的名称获取省份的名称
  15. 攻防世界逆向入门maze详解
  16. HarmonyOS无法添加outlook日历(报错该账户名称已被使用)
  17. AAAI 2022 | MAVEx—基于知识的视觉问答方法
  18. 工行华虹U盾在Vista和IE7下的解决方案
  19. landlord攻略_全攻略:在卡尔加里如何当好房东-之(三)合同篇
  20. 数学之路(3)-数据分析(6)

热门文章

  1. 阿里巴巴Java开发手册(详尽版)-个人未注意到的知识点
  2. 一维信号小波去噪算法C语言,[转载]一维小波分解与去噪重构
  3. 如何在编译器中快速选中一行文字?
  4. VB.NET学习笔记:ADO.NET操作ACCESS数据库——ADO.NET数据访问接口
  5. Android数据库选择恐惧症
  6. OUC_人工智能_战胜选择恐惧症
  7. RQNOJ PID217 / [NOIP1999]拦截导弹【n^2 / LIS】
  8. IDBLK_TIMING.dll群联量产数据库文件合集
  9. Codeforces Round #196 (Div. 2) A. Puzzles 水题
  10. 【读书笔记】《你有你的计划世界另有计划》——达·芬奇诅咒