У меня возникают проблемы с использованием внешней библиотеки, давайте начнем с начала. У меня есть библиотека trans2quik, которая состоит из 3 файлов: trans2quik .dll/.lib/.hQt, вызов функции библиотеки дает нерешенную ошибку внешнего символа
Итак, я использую Qt5.2, MSVC 2012 x64, win7. Я создаю простое приложение виджета qt и библиотеку ссылок, используя мастер «Добавить библиотеку» для создания LIBS, INCLUDEPATH и т. Д. В моем файле pro. Затем, когда я называю какую-либо функцию, я получаю неразрешенный extenal ошибки символа:
widget.obj: -1: ошибка: LNK2019: неразрешенный внешний символ __imp_TRANS2QUIK_CONNECT в функции "общественности: __cdecl Widget :: Widget (класс QWidget *)" (?? 0Widget @@ QEAA @ PEAVQWidget @@@ Z)
код следующим образом:
PRO файл:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = bot_test
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
win32: LIBS += -L$$PWD/ -lTRANS2QUIK
INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/
widget.h файл:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <Windows.h> //For LPSTR and DWORD
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
//Some vars for lib's function
LPSTR connectionParams;
LPSTR errorMsg;
DWORD errorMsgSize;
long *errorCode;
};
#endif // WIDGET_H
widget.cpp файл:
#include "widget.h"
#include "trans2quik_api.h"
#pragma comment(lib, "TRANS2QUIK.lib")
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
TRANS2QUIK_CONNECT(connectionParams, errorCode, errorMsg, errorMsgSize);
}
Таким образом, .lib и .h файлы Lib находятся в каталоге проектов и LIB = + и INCLUDEPATH + = генерировались QtCreator, поэтому я beliave это не проблема. Надеюсь на любую остановку, спасибо заранее.
Возможно, вам нужно удалить место в поле 'win32: LIBS'? – vahancho