FTDI驱动程序库在运行时失败
FTDI driver library fail on run
4用Raspian Wheezy编程树莓派B。我的pi有一个FTDI usb/串行芯片FT231X的定制子板。我找到了这个设备的驱动程序(FTD2xx.1.1.12),它附带了一些示例程序。根据文档,我将驱动程序(.a和.so)安装到/usr/local/lib,然后运行其中一个示例程序。这是使用SSH客户端(不是来自Netbeans)完成的。没有构建错误,程序运行没有错误。现在,当我尝试在我的Netbeans构建中包含静态库时,它会构建OK,但当我尝试运行(调试或发布构建)时,它不会运行并返回错误"错误",同时加载共享库:libftd2xx。so:不能打开共享目标文件:没有这样的文件或目录。运行失败(退出值127,总时间203ms)"。首先,当我在Netbeans中链接静态.a库时,为什么要寻找共享库?
我在plain 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
可能会有所帮助。
可执行文件需要在sudo
和ftdi_sio
下运行,usbserial
驱动程序需要在使用libftd2xx运行应用程序之前卸载。下面是它的自述文件中的一段话:
如果出现"FT_Open failed"消息:可能内核自动加载了另一个驱动程序FTDI USB设备。
`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)
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- 运行时检查失败 #2 变量"A"周围的堆栈已损坏
- 运行时检查失败 #0 用于运行时重新编译
- 运行时检查失败 #2 - 变量"e"周围的堆栈已损坏。发生
- 运行时检查失败 #2 MSVC 仅使用 utf8proc 进行调试
- std::copy 导致运行时检查失败 #2
- 运行时检查失败 #2 - 变量周围的堆栈'...'已损坏
- 运行时检查失败 #2 - 变量"l1"周围的堆栈已损坏
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 运行时检查失败 - 变量周围的堆栈已损坏
- C++,弹出调试断言失败窗口,我得到矢量迭代器不兼容的错误运行时
- 调试:运行时检查失败 #2 - 变量"LoggerThread"周围的堆栈已损坏
- NVCC编译了特征库,并在运行时失败的结构中的MatrixxD大小
- 运行时检查失败 #2 - 变量周围的堆栈'k'已损坏
- UDP 示例运行时失败
- D3DXCreateTexture在使用MS "Application verifier"运行时失败
- c++ regex_search捕获检索在运行时失败
- FTDI驱动程序库在运行时失败
- visual c++代码可编译,但在运行时失败
- 如何验证运行时失败是否是由于派生了太多线程造成的