我无法制作与FTDI芯片交互的程序。我不知道我可以提供多少关于芯片型号的信息。
我正在尝试使用API FTDI提供与我拥有的芯片进行通信。我正在使用Qt Creator进行该程序,这是我第一次使用它。我发现的所有示例都使用include "ftd2xx.h"
。好吧,我已经尝试了很多方法让它运转起来。我手动输入了ftd2xx.lib的目录,将文件移动到项目目录并选择“内部库”,使用原始目录并选择“外部库”,然后选择“系统库”。
给我一个不同错误的唯一方法是当我在项目目录中包含驱动程序包文件时,只包括带或不带LIBS += ...
的头文件。即使这样,我也会收到393个错误NAME does not name a type
,NAME not declared in scope
等
如何创建一个识别ftd2xx.lib
的Qt Creator C ++项目并允许我使用ftd2xx.h
中的函数?
编辑:我使用的是Windows 64位驱动程序package。在我的沮丧中,我忘了我应该包括这些重要的细节。
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();
}
#-------------------------------------------------
#
# 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/
所有这些都会导致更多NAME does not name a type
错误。
答案 0 :(得分: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文件名。