gpt4 book ai didi

c++ - FTDI 驱动程序库运行失败

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:45 24 4
gpt4 key购买 nike

4 使用 Raspian Wheezy 对 Raspberry Pi B 进行编程。我的 pi 有带有 FTDI usb/串行芯片 FT231X 的定制子板。我找到了这个设备的驱动程序 ( FTD2xx.1.1.12 ),它带有一些示例程序。根据文档,我将驱动程序( .a 和 .so )安装到/usr/loca/lib ,然后运行示例程序之一。这是使用 SSH 客户端完成的,即不是来自 Netbeans。没有构建错误,程序运行没有错误。现在,当我尝试在我的 Netbeans 构建中包含静态库时,它构建正常,但是当我尝试运行(调试或发布构建)时,它不运行并返回错误“加载共享库时出错:libftd2xx.so:无法打开共享目标文件:没有这样的文件或目录。运行失败(退出值 127,总时间 203 毫秒)”。首先,当我在 Netbeans 中链接静态 .a 库时,为什么要查找共享库?

最佳答案

我在试图编译其中一个示例的普通 c 中遇到了类似的问题。我在做

gcc main.c -o ftdiTest -lftd2xx

但是遇到了同样的错误。使用 rpath 标志编译解决了问题:

gcc main.c -o ftdiTest -Wall -Wextra -L. -lftd2xx -Wl,-rpath /usr/local/lib

我不确定是否真的需要它,但是将 LD_LIBRARY_PATH 设置为 /usr/local/lib 可能会有所帮助。

可执行文件需要使用 sudoftdi_sio 运行,如果存在 usbserial 驱动程序,则需要在使用 libftd2xx 运行应用程序之前卸载。这是自述文件中的引述:

If the message "FT_Open failed" appears: Perhaps the kernel automatically loaded another driver for the FTDI USB device.

`sudo lsmod`

If "ftdi_sio" is listed:
Unload it (and its helper module, usbserial), as follows.

`sudo rmmod ftdi_sio`
`sudo rmmod usbserial`

Otherwise, it's possible that libftd2xx does not recognise your
device's Vendor and Product Identifiers. Call FT_SetVIDPID before
calling FT_Open/FT_OpenEx/FT_ListDevices.

这在 C++ 中也应该有效(我在 OpenFrameworks 项目中使用了相同的方法)

此外,我记得在 Raspberry PI1 (armv6) 上的库有一些问题,并通过电子邮件发送了 FTDI 支持。他们提供了一个可以工作的重新编译的库。相同的库适用于 Raspberry PI2(armv7)

关于c++ - FTDI 驱动程序库运行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25056795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com