0

我在制作一个通过D2xx 驱动程序与 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.

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

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

[主.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

IDE:Qt Creator 3.0.0

编译器:MSVC2012(32bit)

目标设备:ft232hl

[附加说明]

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

在此处输入图像描述

4

1 回答 1

1

我的预感是您在错误消息中打错了字,而真正的错误消息如下所示:

LNK1104: cannot open file 'ftd2xxd.lib'

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

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

无论如何,我们不在乎对话框设置是什么。只显示你真正使用的实际.pro文件,因为到目前为止我不知道你使用的是哪个文件,也不知道你是否在.pro文件更改后重新运行了 qmake。

您确定该ftd2xx.lib文件实际上位于该文件所在的同一文件夹中.pro吗?

于 2014-02-11T14:20:15.767 回答