libusb-win32-src-1.2.6.0源码编译成功。内附详细配置

288 篇文章 0 订阅
120 篇文章 3 订阅

作者:gallop020142

转自:http://www.amobbs.com/forum.php?mod=viewthread&tid=5554071&highlight=libusb


系统平台:
windows7
工具软件:
1.Winddk7600_1(GRMWDK_EN_7600_1.ISO)
2.Mingw5.1.6
3.Visualstudio 2008(optional)
4.libusbK-3.0.6.0(optional)

具体步骤:
分两步走,第一步先编译出libusb.lib, libusb0.sys, install-filter.exe, istall-filter-win.exe, testlibusb.exe testlibusb-win.exe, libusb0.dll;第二步编译inf_wizard.exe等。

Libusb-win32-src-1.2.6.0的编译:(先编译出libusb.lib, libusb0.sys, install-filter.exe, istall-filter-win.exe, testlibusb.exe testlibusb-win.exe, libusb0.dll)
Step1)        修改ddk_make/make.cfg中的相关内容:
1.        Line25 WINDDK_BASE =c:\WinDDK
2.        Line26 WINDDK_DIR=!WINDDK_BASE!\7600.16385.1\
3.        Line29 注释掉
4.        Line49 PACKAGE_ROOT_DIR = C:\libusb-win32\
5.        Line76 ISCC=C:\Program Files\Inno Setup 5\ISCC.exe(optional)
6.        Line81 IMPLIB=C:\Program Files\Borland\CBuilder6\Bin\implib.exe(optional)
Step2)        修改ddk_make/make.cmd
1.        Line175 W2K 修改成WIN7
Step3)        在命令行cd至ddk_make,输入命令make.cmd “arch=x86”进行编译。make.cmd的其余参数的用法可以通过打开make.cmd文本查看该文件的line955-1017(ShowHelp)。
Step4)        要编译Inf_wizard.exe就需编译projects/additional/libwdi,而可以单独进行编译,如下文所示。

Libwdi(Library for Windows Driver Installer, software/progromming/libwdi-1.2.2.tar.gz)的编译
Step1)        打开libwdi-1.2.2/libwdi/embedded_files.h文件,Line50 – line155定义了需要准备的文件,这些文件在libwdi-1.2.2/msvc/config.h中定义。可以查看需要准备的文件如下(只定义OPT_M32, LIBUSB0_DIR, LIBUSBK_DIR):
1.        DDK_DIR \\redist\\wdf\\x86\\WdfCoInstaller0 STR(WDF_VER).dll
2.        DDK_DIR \\redist\\“COINSTALLER_DIR”\\x86\\winusbcoinstaller2.dll
3.        DDK_DIR \\license.rtf
4.        LIBUSB0_DIR \\bin\\x86\\libusb0_x86.dll
5.        LIBUSB0_DIR \\bin\\x86\\install-filter.exe
6.        LIBUSB0_DIR \\bin\\x86\\libusb0.sys
7.        LIBUSBK_DIR \\sys\\x86\\libusbK.sys
8.        LIBUSBK_DIR \\dll\\x86\\libusbK.dll
Step2)        前3个文件为winddk自带,所以只需在本机任意地址准备如上文件4-8:
1.        从编译的libusb-win32-src-1.2.6.0中复制对应文件到D:/libusb-win32: bin/x86/libusb0_x86.dll, install-filter.exe libusb0.sys
2.        从libusbK的安装目录下找到对应的文件复制到D:/libusbK/bin/dll/x86/libusbK.dll,如果libusbK.sys找不到的话,在c:/windows/system32/drivers下找到并复制libusbK.sys至D:/libusbK/bin/sys/x86/libusbK.sys
Step3)        修改libwdi-1.2.2/msvc/config.h:
1.        Line14-16: DDK_DIR修改成本机winddk7600_1的安装地址,如"C:/WinDDK/7600.16385.1",注意所有地址符用”/”或者“\\”,不要用“\”!
2.        Line19-21: LIBUSB0_DIR修改成本地libusb-win32-bin的地址,如"D:/libusb-win32"
3.        Line24-26: LIBUSBK_DIR 修改成本地libusbK的地址,如"D:/libusbK/bin"
4.        Line 34: WDF_VER 修改成winddk的版本 1009
Step4)        借助winddk编译libwdi1.2.2源码:
1.        开始->Windows Driver Kits->WDK 7600.16385.1->build environments->windows7->x86 free build environment
2.        在打开的命令行中cd至libwdi1.2.2的源码路径
3.        在命令行输入ddk_build.cmd(如果要生成dll的话,再加上 dll)
4.        如果编译成功的话,会出来一些类似的信息,表示所编译的工程编译成功(8个executable built, 1个library built)
4 files compiled
1 executable built
如果编译不成功,出现embedded.h文件找不到的情况,则基本肯定是以上步骤,特别是所需准备的文件的路径有问题!
如果以上编译成功的话,可以打开libwdi_2008.sln进一步进行调试。

关于libusb-win32开发的经验(2012-11-10 11:37:50)转载▼标签: win32rs232驱动usblibusbit 分类: 外围器件接口 作为设备开发者, 一般需要让设备与上位机PC通讯, 我们往往考虑采用以下几种接口: rs232, USB, ethernet. 现在在PC机上已经很难见到rs232的接口, 而ethernet也需要做特殊的配置, USB大多成为我们的首选. 对于数据偏少的应用, 我们可以利用USB虚拟串口的方式来完成这样的任务, 虚拟串口的驱动和实例, 对于下位机来说也非常常见. 有个问题: 很多应用无法用虚拟串口的方式来得到满足, 只能按照USB的方式来解决问题. 这个时候, 我们只好针对USB进行编程. 对于复杂的驱动编程, 大多数程序员往往望而却步. 不过总有其他简单的方法解决问题. 这里, 我们介绍一个USB通讯库: libusb. 介绍 libusb是一个针对usb通讯的库. 使用它, 你不需要知道操作系统的细节, 你只需要对USB有足够的了解即可. 它也不需要你写驱动, 所有的工作都可以在用户态完成. 使用方法很简单, 这里有一个示例: http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation#IV.Examples , 是不是很简单? 原理 libusb自己带有一个内核驱动, 名字叫libusb0.sys, 放在WINDOWSSYSTEM32DRIVERS里面. 用户程序调用libusb0.dll, dll会把任务交由驱动来完成. 这样保证用户态就能够完成USB通讯的作业. 具体做了什么, 可以通过下载项目的源文件来了解, 等我有时间的时候再看看吧. 安装方法 libusb现在有好几个版本. 主页面在这里: http://www.libusb.org/ 因为我们一般是进行工程应用, 选择相对稳定的版本: libusb-0.1. 平台在windows下的话, 我们采用libusb-win32: http://www.libusb.org/wiki/libusb-win32 linux下一般已经添加到源里面去了, 查找libusb即可. windows下安装方法: http://www.libusb.org/wiki/libusb-win32#Installation 里面有2种安装方式, Filter Driver Installation 和 Device Driver Installation, 前面一个可以说是开发环境, 后面可以说是发布驱动本身. 我们因为是做系统, 选择前面一个方式, 省得麻烦. 使用 这里有比较详细的文档: http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation libusb-win32的下载地址http://sourceforge.net/apps/trac/libusb-win32/wiki 开发者论坛地址:http://libusb.6.n5.nabble.com/ libusb-1.0 API Reference:http://libusb.sourceforge.net/api-1.0/ 开发过程中有超时问题的原因:http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值