b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

libusb-win32编译环境和快速调试方法

电脑杂谈  发布时间:2020-03-25 10:10:00  来源:网络整理

mac装虚拟机跑vs2008_mac虚拟机安装mac_苹果电脑装虚拟机能下载win系统的软件嘛

来自: Anchey Intelligent Technology(anchey.com)

今天在虚拟机上测试设备时,我发现VS2008编译的libusb0.dll与VC ++ 9 Runtime库具有依赖关系. 使用/ MT选项编译时,此dll的大小超过100K. 显然不是. 最后了解为什么libusb-win32使用gcc编译此dll.

花了4个小时才了解很少信息的官方推荐的MinGW / Msys编译方法. 我在这里鄙视libusb-win32项目团队,编译方法几行就完成了,很简单,结果还没有使用.

因此,以下VS2008编译方法仅供您参考. 对于高手来说没有必要,如果您是新手,也可以加深对编译的理解.

libusb-win32项目团队提供的编译方法说明

此文件夹包含用于使用Microsoft的DDK编译libusb-win32的批处理文件.

要求:

1)将WinDDK6001.18002用于Windows2000与Windows7兼容.

(注意: WinDDK6001.18002isthatlasttosupportWindows2000)

如何编译:

1)安装DDK

2)openaDDKbuild环境,“检查”或“免费”一个

3)启动以下批处理文件以编译源:

make_driver.bat: 构建驱动程序

make_dll.bat: 构建DLL

make_install_filter.bat: buildsinstall-filter.exe实用程序

make_test.bat: 构建测试工具的命令行版本

make_test_win.bat: 构建Windows版本的测试工具

make_all.bat: 构建一切,驱动程序,DLL和测试工具

--------------------------------------------------- -------------------------------------------------- --------------

MinGW / Msys编译方法

类似地,这也需要WINDDK. MinGW仅完成VS2008的功能. 开发包中已存在编译的脚本libusb-win32. 我们只需要稍微修改一下make.cfg文件. 对于make.cfg中的WINDDK路径的修改mac装虚拟机跑vs2008,请参考以下方法.

MinGW是一个非常开放的WINDOWS编译器. 您可以安全地在商业上使用它,这也是免费的. 有关详细信息,请参阅MinGW许可证. MinGW的安装方式与cygwin相同,只有下载管理器可以下载和管理MinGW软件包.

只需选择最小安装. 为了将来使用,您还可以选择安装g ++和gmake. 这些仅占用一百多兆字节的空间.

mac装虚拟机跑vs2008_mac虚拟机安装mac_苹果电脑装虚拟机能下载win系统的软件嘛

然后,在make.cfg中修改DLLTOOL的路径. 我将其安装在E盘上. 这是我的make.cfg的相关内容.

; Pathtogccdlltooltool()

; (可选)

DLLTOOL = E: \ MinGW \ bin \ dlltool.exe

编译方法.

使用命令提示符,转到ddk_make文件夹并输入make.cmd. 此时,帮助文件会自动打印出来(可恶的libusb-win32项目团队已将帮助文件隐藏在这里!)

(原始文件名: ddkmake.jpg)

输入make.cmd“ arch = x86”进行编译. 好.

// ============================================== ==== ====================================

最近,STM32 USB应用程序似乎非常流行. 我碰巧有一个涉及USB驱动程序的项目. 因为我一直使用USBASP下载用于AVR微控制器的程序,所以我有USBASP使用的USB通信库libusb-win32的名称和来源. 终于,在5天前,她开始了解自己的第一步. 我也是USB的新手. 我刚刚联系了几天,但是在使用自己的编译驱动程序与STM32通信两天之后,我仍然感到有些满足. 拉别人的手并获得收益,我自然必须传播她的宣传. 秉承开放源代码共享的精神,Piban露了脸. 当然,同样,不要看广告,看效果. 是否有效,由军官决定.

我还推荐了一个用于调试libusb-win32的良好例程,它是STM32 Virtual_COM_Port例程. 这样,您可以快速开始使用libusb-win32库. 减少八卦,让我们开始讨论.

国际惯例,让我首先介绍libusb-win32. 以下内容已被其他人复制(更正,现在libusb-win32也支持WINDOWSVISTA / WINDOWS7). .

// --------------------------------------------- -------------

LibUSB-Win32是用于Windows操作系统(Win98SE,WinME,Win2k和WinXP)的通用USB设备驱动程序. 该驱动程序允许用户访问Windows系统上的任何USB设备,而无需编写任何行的核心驱动程序代码. 该驱动程序具有以下特征:

l可以与任何已安装的USB设备通信

l可用作您自己的USB设备的驱动程序

l支持批量和中断传输

l支持USB规范中定义的所有标准设备请求

l支持USB设备制造商的自定义请求

LibUsb-Win32由GNULesserGeneralPublicLicense(LGPL)和GNUGeneralPublicLicense(GPL)许可协议发行. 这些协议清楚地表明,允许LibUsb-Win32用于商业软件,而不仅仅是开放源代码软件.

使用七个功能,您可以轻松地与USB设备通信. 交流的主要流程可分为以下四个步骤:

1)调用usb_init函数进行初始化.

2)打开USB设备的手柄以进行通信. 首先调用三个函数usb_find_busses,usb_find_devices和usb_get_busses,以获取找到的USB总线序列;然后遍历链接列表中的所有USB设备,并找到相应的USB设备ID(VID / PID),以找到相应的USB设备;最后调用usb_open函数打开USB设备(此处假设总线上没有USB设备具有相同的VID和PID. 如果总线上存在具有相同VID和PID的设备,则必须确定其他条件,例如设备名称,以确保“ Yes open”是所需的USB设备.

苹果电脑装虚拟机能下载win系统的软件嘛_mac装虚拟机跑vs2008_mac虚拟机安装mac

3)与USB设备通信. 使用usb_control_msg函数从USB设备读取数据或向USB设备写入数据.

4)关闭USB设备. 完成所有操作后,调用usb_close函数以关闭打开的USB设备.

// --------------------------------------------- -------------

让我们再次介绍编译工具.

MSVC(KIT中的项目文件是VS2008. 如果使用VS2005或VC6,则必须构建自己的项目. libusb-win32的项目较为复杂,不建议使用. 我使用Visualstudio2008RTM 90天试用版)

BCC(如果您已安装BorlandC ++ Builder,只需修改make.cfg,然后在ddk_make文件夹中运行相应的批处理文件,在此就不再介绍了)

以上两个用于编译libusb-win32动态链接库,相关工具和DEMO程序. 我们还需要WINDDK来编译驱动程序,即生成libusb0.sys文件. 从官方make.cfg文件中,使用WINDDK7600.16385.0(WINDOWXP及更高版本)WINDDK6001.18002(WINDOWS2000及更低版本). 我只在MICROSOFT的官方网站上找到了最新的WINDDK7600.16385.1mac装虚拟机跑vs2008,所以我用了它.

使用VS2008和WINDDK,我们可以开始以下工作.

下载源代码

您可以直接从官方网站下载源代码,地址为/ files /

您还可以通过SVN工具从/ libusb-win32libusb-win32中检出最新的源代码. 我将TortoiseSVN用作SVN工具.

vs2008的项目文件位于projects文件夹中. 让我们看看

(原始文件名: libusb0.jpg)

共有7个项目.

inf-wizard-设备驱动程序安装信息文件生成向导. 该向导可以扫描计算机上的USB设备,并获取您选择的设备的VID和PID来生成inf文件.

(原始文件名: inf1.jpg)

(原始文件名: inf2.jpg)

install-filter-filter驱动程序安装. Filterdriver是驱动程序的高级领域. 将使用防病毒软件,防火墙,笔记本电脑的按钮等.

libusb-dll——动态链接库,生成libusb0.dll. 上面提到的“ 7个功能”被封装在其中. 同时,将生成libusb0.lib文件供您的程序链接. 该文件实现了libusb0.dll的加载.

libusb-sys——USB驱动程序,生成驱动程序文件libusb0.sys. 不要以为它是由VC ++编译的. 实际上,这是一个makefile项目. WINDDK借给孩子的游戏,借给VS的肚子.

testbulk-“世界,您好!”通过libusb-win32.

mac装虚拟机跑vs2008_苹果电脑装虚拟机能下载win系统的软件嘛_mac虚拟机安装mac

testlibusb-顾名思义,它实现了libusb-win32驱动的设备的遍历并打印一些设备描述信息.

testlibusb-win-WINFORM版本的testlibusb.

编译

现在已经构建了项目,请先对其进行编译,然后再进行讨论. 按F7编译解决方案.

没有错误,但是libusb-sys生成的目录中没有libusb0.sys文件. 答案是libusb-sys依赖于WINDDK来编译链接. 有点像我将VS2005 IDE与WINAVR一起使用来开发AVR微控制器.

查看libusb-sys的项目属性页. 在[配置属性]的[NMAKE]列中,选中“生成命令行”.

CD“ $(ProjectDir).. \ ddk_make”

CMD / Cmake.cmd“ arch = x86”“ app = driver”“ noclean = true”“ outdir = $(OutDir)”“ DIR_INTERMEDIATE = $(IntDir)”“ debugmode = true”

似乎该ddk_make文件夹中的编译脚本为make.cmd.

这里

SETMAKE_CFG =! DIR_LIBUSB_DDK! make.cfg

查看此make.cfg文件.

我不会谈论打包的内容. 让我们看两个关键的事情.

;默认WinDDK目录调整这些值以匹配您的环境

; (必需)

WINDDK_BASE = Z: \ WinDDK

WINDDK_DIR =! WINDDK_BASE! \ 7600.16385.0 \

;

; (可选)

WINDDK_W2K_DIR =! WINDDK_BASE! \ 6001.18002 \

呵呵,WINDDK在这里. 我想在这里八卦. 看到他们将WINDDK放在Z驱动器上,我想他们还使用虚拟机无限期地使用90天试用版吗?哦,纯粹是猜测. 如果有相似之处,那就是巧合.

将这两个更改为您的WINDDK安装路径. 例如我的是

;默认WinDDK目录调整这些值以匹配您的环境

; (必需)

苹果电脑装虚拟机能下载win系统的软件嘛_mac装虚拟机跑vs2008_mac虚拟机安装mac

WINDDK_BASE = E: \ WinDDK

WINDDK_DIR =! WINDDK_BASE! \ 7600.16385.1 \

;

;找不到WINDDK6,并且我不打算编译Windows 2000及更低版本的驱动程序,因此我将其注释掉.

; (可选)

; WINDDK_W2K_DIR =! WINDDK_BASE! \ 6001.18002 \

编译libusb-sys. error.h和error.c将报告警告819. 在某个时候,编译器会将此警告视为错误,因此无法成功编译. 根据编译器提示的方法,使用VS2008重新保存这两个文件. 好.

为Virtual_COM_Port安装我们的驱动程序. 首先使用inf-wizard生成一个inf文件. 将libusb0.sys和libusb0.dll分别复制到x86文件夹中.

(原始文件名: driverfile.jpg)

手动安装此驱动程序,每个人我都不需要赘述.

(原始文件名: device.jpg)

运行testlibusb-win来测试设备. 错误!

(原始文件名: error.jpg)

R6034错误,此错误是因为资源列表未嵌入libusb0.dll中. 我们可以使用mt工具将资源列表嵌入到exe或dll中. 因为libusb-win32提供的项目文件的默认配置不会生成清单文件,所以我们需要对其进行设置.

libusb-dll项目属性页->链接器->清单文件;将[generate manifest]设置为“ yes”,重新生成libusb-dll

开始-> MicrosoftVisualStudio2008-> VisualStudioTools-> VisualStudio2008x64兼容工具命令提示符;

cd进入libusb-dll的生成目录

mt.exe--manifestlibusb0.dll.manifest-outputresource: libusb0.dll; 2

(原始文件名: cmd.jpg)

[本文为Anchey.com原创]


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-151648-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...