c++ - 如何在 QtCreator 上使用 FTD2xx 库(使用 MSVC2012 编译器)

标签 c++ qt visual-c++ qt-creator ftdi

我在制作通过 D2xx driver 与 FTDI 设备通信的应用程序时遇到了问题.ftdi 的网站上有一些Visual Studio 示例项目。但是 QtCreator 没有。我选择 QtCreator 作为 c++ IDE,因为我的应用程序需要 Qt 框架。 我把ftd2xx.h和ftd2xx.lib放在了Qt工程目录下。

(ftd2xx.lib为静态库,原先位于[download-folder]\CDM v2.08.30 for Windows 8.1\Static\i386)

编译示例源代码时,出现以下错误消息。

使用 .pro 文件时的错误消息(1)。

LNK1104: cannot open file 'ftd2xx.lib' 

当我使用 .pro 文件 (2) 时出现错误消息。

error: Assignment needs exactly one word on the left hand side.

我应该如何更正 Qt 项目设置以利用 ftd2xx 库?

我的源代码和 .pro 文件在这里。

[ main.cpp ]

#include <QCoreApplication>
#include <windows.h>
#include "ftd2xx.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    FT_HANDLE ftHandle;
    FT_STATUS ftStatus;
    ftStatus =  FT_Open(0,&ftHandle);

    return a.exec();
}

[.pro 文件,如果复选框被启用] ---(1)

#-------------------------------------------------
#
# Project created by QtCreator 2014-02-11T18:51:08
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = D2XXtest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
HEADERS += ftd2xx.h

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/ -lftd2xx
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/ -lftd2xxd

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/libftd2xx.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/libftd2xxd.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/ftd2xx.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/ftd2xxd.lib

[.pro 文件,如果复选框未启用] ---(2)

#-------------------------------------------------
#
# Project created by QtCreator 2014-02-11T18:51:08
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = D2XXtest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
HEADERS += ftd2xx.h

win32: LIBS += -L$$PWD/ -lftd2xx

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32:!win32-g++ PRE_TARGETDEPS += $$PWD/ftd2xx.lib
else:win32-g++: PRE_TARGETDEPS += $$PWD/libftd2xx.a

如有任何帮助,我们将不胜感激。提前致谢。

[注意]

操作系统:Windows 8.1

集成环境:Qt Creator 3.0.0

编译器:MSVC2012(32位)

目标设备:ft232hl

[附加说明]

“添加库”的配置如下。 如果我启用“为调试版本添加“d”后缀”复选框,则会收到有关 LNK1104 的错误消息。否则,我会收到不同的错误消息。

enter image description here

最佳答案

我的直觉是你在错误信息中打错了字,真正的错误信息如下:

LNK1104: cannot open file 'ftd2xxd.lib'

看到那个 d 了吗?它不属于,没有 ftd2xxd.lib。您需要将对 ftd2xxd.lib 的任何引用更改回 ftd2xx.lib,重新运行 qmake,您应该已准备就绪。否则您的 .pro 文件似乎是正确的。

编辑后,您提供了一个“启用复选框”的 .pro 文件。这当然不是真的,因为您显示的内容暗示复选框被禁用启用。

无论如何,我们不关心对话框设置是什么。只显示您真正使用的实际 .pro 文件,因为到目前为止我不知道您使用的是哪个文件,而且我不知道您是否在 .pro 文件已更改。

您确定 ftd2xx.lib 文件实际上与 .pro 文件位于同一个文件夹中吗?

关于c++ - 如何在 QtCreator 上使用 FTD2xx 库(使用 MSVC2012 编译器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21701901/

相关文章:

c++ - 将现有的 shared_ptr 附加到 shared_ptr 的 vector

c++ - GDI+ 多线程绘图

c++ - 从另一个共享对象动态加载共享对象时的约束?

c++ - 检查对话框/小部件/窗口是否仍然打开以防止重复

mysql - Qt 使用数据库检查登录

c++ - 在 MSVC 11 中 boost "destructor is not virtual"错误

c++ - VC++ Glew 外部链接错误

c++ - 如何通过自己的中心旋转所有对象,然后将它们平移到真实位置(它不起作用)

c++ - 有没有更好/更有效的方法来存储大型数组

c++ - 错误C2664 : 'CSchemaString::CSchemaString(LPCTSTR)' : cannot convert parameter 1 from 'int' to 'LPCTSTR' [closed]