0

我正在尝试将 ftd2xx.lib 与 lcc-win32 编译器一起使用,但链接器失败。我使用了 CDM v2.12.14,但之前的 FTDI 驱动程序也给出了相同的错误。我尝试在 Windows XP 和 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'

如果我链接动态 ftd2xx.lib(将 ftd2xx.dll 放在 .exe 文件的同一目录中),我将得到:

Error e:\c\ftdi_cnt\main.c 11 undefined reference to __imp__FT_Open

(请注意,用于此测试的 main.c 仅包含一个 FT_Open() 调用)。

有没有人能够使用 lcc-win32 编译器运行 ftd2xx.lib 或者当前正在使用 lcc-win32 并且可以进行快速测试?这是最新的FTDI 驱动程序。谢谢你。

4

1 回答 1

0

终于成功了!这是我所做的:

1) Ian 建议我应该使用“Utils --> Import foreign library”;事实上,这与从命令行运行相同:

pedump /EXP ftd2xx.lib >ftd2xx.exp
buildlib ftd2xx.exp ftd2xxy.lib

我已经尝试过将动态 .lib 用于 ftd2xx.lib 但没有成功。

2) 我再次运行 pedump,这次使用静态 .lib,我收到一条关于未知 dll 名称的警告消息,因此我编辑了 ftd2xx.exp 的第一行添加该名称 (ftd2xx.dll)。

3) 我在包含 ftd2xx.h 之前定义了 FTD2XX_STATIC

4)我链接了新库 ftd2xxy.lib

注意你不能使用“Utils --> Import foreign library”,因为你需要在重新构建库之前修改ftd2xx.exp。

我希望这对其他人有帮助。

于 2016-03-12T18:29:42.277 回答