繁体   English   中英

如何在C ++程序中使用ftd2xx.lib?

[英]How can I use ftd2xx.lib with a C++ program?

我在制作程序与FTDI芯片交互时遇到麻烦。 我不知道我能提供多少有关芯片型号的信息。

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

唯一给我一个不同错误的方法是,当我在项目目录中包含驱动程序软件包文件时,仅包含带有或不带有LIBS += ...的头文件。 即使这样,我NAME does not name a type收到393个错误消息,提示NAME does not name a typeNAME not declared in scope等。

如何创建可以识别ftd2xx.lib并允许我使用ftd2xx.h的功能的Qt Creator C ++项目?

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

EDIT2:下面的代码。

main.cpp中

#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/

错误

Errors.png

所有这一切后面都有更多的NAME does not name a type错误。

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文件名即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM