У меня проблемы с созданием программы для взаимодействия с чипом FTDI. Я не знаю, сколько информации могу дать в отношении номера модели чипа.
Я пытаюсь использовать API, предоставляемый FTDI для связи с чипом, который у меня есть. Я использую 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 64bit пакет. В своем разочаровании я забыл, что должен включить эти важные детали.
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 = appSOURCES += 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
ошибки.
Заголовок 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.
Других решений пока нет …