C++ 如何在QtCreator上使用FTD2xx库(带有MSVC2012编译器)

C++ 如何在QtCreator上使用FTD2xx库(带有MSVC2012编译器),c++,qt,visual-c++,qt-creator,ftdi,C++,Qt,Visual C++,Qt Creator,Ftdi,我在制作一个通过FTDI设备进行通信的应用程序时遇到了麻烦。FTDI的网站上有一些Visual Studio的示例项目。但这并不是一个好主意。我选择QtCreator作为C++ IDE,因为我的应用程序需要QT框架。 我将ftd2x.h和ftd2x.lib放在Qt项目目录中 (ftd2x.lib是静态库,最初位于Windows 8.1\static\i386的[下载文件夹]\CDM v2.08.30中) 当编译示例源代码时,我得到了以下错误消息 使用.pro文件时出现错误消息(1) 使用.pro

我在制作一个通过FTDI设备进行通信的应用程序时遇到了麻烦。FTDI的网站上有一些Visual Studio的示例项目。但这并不是一个好主意。我选择QtCreator作为C++ IDE,因为我的应用程序需要QT框架。 我将ftd2x.h和ftd2x.lib放在Qt项目目录中

(ftd2x.lib是静态库,最初位于Windows 8.1\static\i386的[下载文件夹]\CDM v2.08.30中)

当编译示例源代码时,我得到了以下错误消息

使用.pro文件时出现错误消息(1)

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

我应该如何更正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文件,如果复选框未启用”--(2)

任何帮助都将不胜感激。提前谢谢

[注]

操作系统:Windows 8.1

IDE:QtCreator 3.0.0

编译器:MSVC2012(32位)

目标设备:ft232hl

[附加说明]

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


我的直觉是,您在错误消息中输入了一个错误,而真正的错误消息如下所示:

LNK1104: cannot open file 'ftd2xxd.lib'
看到那里的
d
了吗?它不属于那里,那里没有
ftdxxd.lib
。您需要将对
ftdxxd.lib的任何引用更改回
ftdxxx.lib
,重新运行qmake,您应该都已设置好。否则,您的.pro文件似乎是正确的

编辑后,您给出了一个带有“已启用复选框”的.pro文件。这肯定不是真的,因为您显示的内容暗示复选框已禁用,未启用

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


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

谢谢您的回复。我没有打字错误,错误消息与我之前引用的相同。我通过添加附加注释解释了文件名变为ftd2xd的原因。很抱歉,我的注释混淆了。请让我更正我编写的.Second.pro文件是在禁用复选框时生成的。我实际上尝试了两个.pro文件。正如我前面提到的,我分别收到了不同的错误消息。我将ftd2x.lib文件放入包含.pro文件和源代码(main.cpp,ftd2x.h)的目录中让我向您道歉。您的直觉是正确的。删除由QtCreator自动生成的生成xxxx文件夹后,错误消息已更改如下。(我这次使用.pro文件(1)错误:[依赖'C:\Users*********\workspace\QtCreator\U work\D2XXtest\ftd2xxd.lib'不存在。]我认为应该关闭调试版本的复选框“Add”d后缀。是吗?@yufit_in_Japan是的,应该关掉。确保.pro文件看起来正确(没有ftdxxd.lib引用)。
#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();
}
#-------------------------------------------------
#
# 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
#-------------------------------------------------
#
# 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
LNK1104: cannot open file 'ftd2xxd.lib'