将FTDI的D2XX与C一起使用
我正在尝试将ftd2x.lib与lcc-win32编译器一起使用,但链接器失败。我使用了CDM v2.12.14,但之前的FTDI驱动程序也给出了相同的错误。我试着在WindowsXP和Windows7上编译;同样的结果 如果我链接静态库,我将得到以下类型的错误:将FTDI的D2XX与C一起使用,c,ftdi,d2xx,lcc-win32,C,Ftdi,D2xx,Lcc Win32,我正在尝试将ftd2x.lib与lcc-win32编译器一起使用,但链接器失败。我使用了CDM v2.12.14,但之前的FTDI驱动程序也给出了相同的错误。我试着在WindowsXP和Windows7上编译;同样的结果 如果我链接静态库,我将得到以下类型的错误: File ftd2xx.lib contains unknown section .text$mn. .text section assumed File ftd2xx.lib contains unknown section .da
File ftd2xx.lib contains unknown section .text$mn.
.text section assumed
File ftd2xx.lib contains unknown section .data$r.
.data section assumed
.data$r: undefined reference to '??_7type_info@@6B@'
.text$mn: undefined reference to '__imp__SetupDiGetClassDevsA@16'
.text$mn: undefined reference to '__imp__SetupDiEnumDeviceInterfaces@20'
如果我链接动态ftd2x.lib(ftd2x.dll位于.exe文件的同一目录中),我将得到以下结果:
Error e:\c\ftdi_cnt\main.c 11 undefined reference to __imp__FT_Open
(请注意,用于此测试的main.c只包含一个FT_Open()调用)
是否有人能够使用lcc-win32编译器运行ftd2x.lib,或者目前正在使用lcc-win32并可以进行快速测试?这是最新的。谢谢。终于成功了!
以下是我所做的:
1) Ian建议我应该使用“Utils-->导入外部库”;事实上,这与从命令行运行相同:
pedump /EXP ftd2xx.lib >ftd2xx.exp
buildlib ftd2xx.exp ftd2xxy.lib
我已经尝试过将dynamic.lib用于ftd2x.lib,但没有成功
2) 我再次运行了pedump,这次使用的是static.lib,得到了一条关于未知dll名称的警告消息,因此我编辑了ftd2x.exp的第一行,添加了该名称(ftd2x.dll)
3) 在包含ftd2x.h之前,我定义了ftd2x_STATIC
4) 我链接了新的库ftd2xy.lib
请注意,不能使用“Utils-->导入外部库”,因为在重新构建库之前需要修改ftd2x.exp
我希望这能对其他人有所帮助。我不了解Lcc-win32。我使用Visual Studio的次数不多,我开始认为D2XX需要一个C++编译器。有人试过只用C编译器吗?[THIS]()表明,如果您尝试链接原始的.lib文件(可能是用于MSVC的),或者您是否已将其转换为lcc-win32库格式,则可以小心操作。
ftd2x.h
头文件要求在Windows上编译时预定义\u win32
宏。Lcc-Win32编译器会这样做吗?如果没有,则必须在包含标题之前对其进行定义。