Estou usando também o Qt Creator para tentar "facilitar", mas a princípio não está dando certo...
Estou tendo o seguinte erro na hora de compilar: "referência indefinida para...".
Esse erro é acusado para qualquer método da NBioAPI, como por exemplo: NBioAPI_OpenDevice, NBioAPI_FreeFIRHandle, NBioAPI_GetOpenedDeviceID, etc.
Segue o código que tenho até o momento:
fpget.h
#ifndef FPGET_H
#define FPGET_H
#include <QObject>
#include "../../../include/NBioAPI.h"
#ifndef LPBYTE
typedef unsigned char* LPBYTE;
#endif // LPBYTE
class FPGet : public QObject
{
Q_OBJECT
public:
explicit FPGet(QObject *parent = 0);
~FPGet();
NBioAPI_RETURN fpEcho();
protected:
void MakeStreamFromTextFIR(NBioAPI_FIR_TEXTENCODE_PTR pTextFIR, LPBYTE pTextStream);
private:
NBioAPI_HANDLE m_hNBioBSP;
NBioAPI_FIR_HANDLE m_hCapturedFIR;
signals:
public slots:
};
#endif // FPGET_H
fpget.cpp
#include "fpget.h"
#include "QTextStream"
FPGet::FPGet(QObject *parent) : QObject(parent)
{
m_hNBioBSP = NBioAPI_NULL;
m_hCapturedFIR = NBioAPI_NULL;
//Open Device
NBioAPI_OpenDevice(m_hNBioBSP, NBioAPI_DEVICE_ID_AUTO);
}
FPGet::~FPGet()
{
//Free FIR Handle.
if (m_hNBioBSP) {
if (m_hCapturedFIR)
NBioAPI_FreeFIRHandle(m_hNBioBSP, m_hCapturedFIR);
NBioAPI_DEVICE_ID deviceID = NBioAPI_GetOpenedDeviceID(m_hNBioBSP);
//Device Close.
if (NBioAPI_DEVICE_ID_NONE != deviceID)
NBioAPI_CloseDevice(m_hNBioBSP, deviceID);
//NBioAPI Terminate
NBioAPI_Terminate(m_hNBioBSP);
}
}
NBioAPI_RETURN FPGet::fpEcho()
{
NBioAPI_RETURN nRet;
NBioAPI_FIR_TEXTENCODE textFIR; //In coding Text FIR
nRet = NBioAPI_Capture(m_hNBioBSP, NBioAPI_FIR_PURPOSE_VERIFY, &m_hCapturedFIR, -1, NULL, NULL);
memset(&textFIR, 0, sizeof(NBioAPI_FIR_TEXTENCODE));
//Get ExtendText FIR data from Handle
nRet = NBioAPI_GetExtendedTextFIRFromHandle(m_hNBioBSP, m_hCapturedFIR, &textFIR, NBioAPI_FALSE, NBioAPI_FIR_FORMAT_STANDARD);
if (NBioAPIERROR_NONE == nRet) {
LPBYTE pBinaryTextFIR = NULL;
size_t dwLen = strlen(textFIR.TextFIR);
pBinaryTextFIR = new unsigned char[dwLen];
if (pBinaryTextFIR) {
MakeStreamFromTextFIR(&textFIR, pBinaryTextFIR);
nRet = NBioAPI_GetExtendedTextFIRFromHandle(m_hNBioBSP, m_hCapturedFIR, &textFIR, NBioAPI_FALSE, NBioAPI_FIR_FORMAT_STANDARD);
if (nRet == NBioAPIERROR_NONE) {
QTextStream(stdout) << textFIR.TextFIR << endl;
}
}
}
return nRet;
}
void FPGet::MakeStreamFromTextFIR(NBioAPI_FIR_TEXTENCODE_PTR pTextFIR, LPBYTE pTextStream)
{
memcpy(pTextStream, pTextFIR->TextFIR, strlen(pTextFIR->TextFIR));
}
main.cpp
#include <QCoreApplication>
#include "fpget.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
return a.exec();
}
FPGet.pro
QT += core
QT -= gui
CONFIG += c++11
TARGET = FPGet
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
fpget.cpp
HEADERS += \
fpget.h
Alguém tem alguma ideia de qual pode ser o problema?