将FTDI的D2XX与C一起使用

将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

我正在尝试将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 .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编译器会这样做吗?如果没有,则必须在包含标题之前对其进行定义。