2

我无法制作与 FTDI 芯片交互的程序。我不知道我能提供多少关于芯片型号的信息。

我正在尝试使用 FTDI 提供的 API 与我拥有的芯片进行通信。我正在为程序使用 Qt Creator,这是我第一次使用它。我发现的所有示例都使用include "ftd2xx.h". 好吧,我已经尝试了很多方法来让它工作。我手动输入了 ftd2xx.lib 的目录,将文件移动到项目目录并选择“内部库”,使用原始目录并选择“外部库”,然后选择“系统库”。

给我一个不同的错误的唯一方法是当我在项目目录中包含驱动程序包文件并且只包含带有或不带有LIBS += .... 即使这样,我也会收到 393 个错误,说NAME does not name a type,NAME not declared in scope等等。

如何创建一个 Qt Creator C++ 项目来识别ftd2xx.lib并让我使用来自 的函数ftd2xx.h

编辑:我正在使用 Windows 64 位驱动程序。在我的沮丧中,我忘记了我应该包括这些重要的细节。

EDIT2:下面的代码。

主文件

#include <QCoreApplication>
#include <iostream>
#include "ftd2xx.h"
using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    cout << "test" << endl;

    return a.exec();
}

test.pro

#-------------------------------------------------
#
# Project created by QtCreator 2013-10-04T16:31:18
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

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

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

错误

错误.png

所有这些都伴随着更多的NAME does not name a type错误。

4

1 回答 1

3

ftd2xx 标头中有很多 Windows 类型,因此您需要在包含 ftdi 标头之前包含 windows.h。

.lib 文件是一个 DLL 链接库,它提供了在运行时使用 DLL 所需的链接器信息。以下使用 g++ 编译和运行:

#include <windows.h>
#include <stdio.h>
#include <ftd2xx.h>
int main(int argc, char *argv[])
{
    DWORD version = 0;
    FT_STATUS status = FT_GetLibraryVersion(&version);
    printf("version %ld\n", version);
    return (status == FT_OK) ? 0 : 1;
}

编译使用:

g++ -Wall -Idriver -o check.exe check.cpp driver/i386/ftd2xx.lib

其中driver文件夹包含分布式 FTDI Windows 驱动程序包。这-lftd2xx将使链接器搜索名为 libftd2xx.a 的内容,因此只需明确提供 .lib 文件名。

于 2013-10-04T22:50:02.560 回答