【问题标题】:How to use FTD2xx library on QtCreator (with MSVC2012 compiler)如何在 QtCreator 上使用 FTD2xx 库(使用 MSVC2012 编译器)
【发布时间】:2014-03-09 05:48:23
【问题描述】:

我在制作一个通过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

IDE:Qt Creator 3.0.0

编译器:MSVC2012(32bit)

目标设备:ft232hl

[补充说明]

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

【问题讨论】:

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


    【解决方案1】:

    我的预感是你在错误信息中打错字了,而真正的错误信息如下:

    LNK1104: cannot open file 'ftd2xxd.lib'
    

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

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

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

    您确定ftd2xx.lib 文件实际上与.pro 文件所在的文件夹相同吗?

    【讨论】:

    • 感谢您的回复。我没有打错字,错误信息与我之前引用的相同。我通过添加附加注释来解释文件名变为 ftd2xxd 的原因。
    • 对不起,我的评论令人困惑。让我更正我另外写的内容。禁用复选框时会生成第二个 .pro 文件。我实际上尝试了两个 .pro 文件。正如我之前提到的,我分别收到了不同的错误消息。我将 ftd2xx.lib 文件放入包含 .pro 文件和源代码(main.cpp,ftd2xx.h)的目录
    • 让我向你道歉。你的预感是对的。删除QtCreator自动生成的build-xxxx文件夹后,错误信息变成了如下(我这次用的是.pro文件(1))error:[dependent'C:\Users******\ workspace\QtCreator_work\D2XXtest\ftd2xxd.lib' 不存在。] 我认为“为调试版本添加“d”后缀的复选框应该被关闭。对吗?
    • @yufit_in_Japan 是的,应该关闭它。确保 .pro 文件看起来正确(没有 ftd2xxd.lib 引用)。
    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多