Я использую qt и разрабатываю настольное приложение, которое будет работать под win xp / vista.
У меня есть сторонняя библиотека UserAgentLib (статическая и общая). Но я не уверен, как сделать ссылку в Qt Creator.
Я открыл файл * .pro и добавил мою библиотеку и путь к заголовку.
Библиотека называется UserAgentLib, а заголовочный файл называется UserAgentLib.h
TARGET = Dialer
TEMPLATE = app
LIBS += D:\Projects\qtDialer\tools\lib\UserAgentLib
INCLUDEPATH += D:\Projects\qtDialer\tools\inc
SOURCES += main.cpp\
catdialer.cpp
HEADERS += catdialer.h
FORMS += catdialer.ui
Я думаю, что он находит файл заголовка, так как я получаю около 100 ошибок для объявлений в файле UserAgentLib.h. Однако я не думаю, что это связь с библиотекой.
Большое спасибо за любые предложения,
======================
Я создал очень простую библиотеку в VS C ++ 2008. Вот код для заголовка и исходного файла.
Заголовок:
// mathslibrary.hpp
int add_numbers(const int a, const int b);
Источник:
// mathslibrary.cpp
#include "mathslibrary.hpp"
int add_numbers(const int a, const int b)
{
return a + b;
}
Я скомпилировал это в библиотеку. И протестировано путем связывания с консольным приложением WIN32 в VS 2008. Библиотека работала, как и ожидалось.
Теперь, когда я пытаюсь связать с qt.
#include <QtCore/QCoreApplication>
#include <iostream>
#include "mathslibrary.hpp"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::cout << "add numbers 40 + 60 = " << add_numbers(40, 60) << std::endl;
return a.exec();
}
Это мой файл qmake:
QT -= gui
TARGET = testlibrary
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
LIBS = D:\Projects\TestLibrary\mathsLibrary\Debug\mathsLibrary.lib
INCLUDEPATH = D:\Projects\TestLibrary\mathsLibrary\
SOURCES += main.cpp
Вот ошибки, которые я получаю, когда пытаюсь собрать:
C: / Qt / MinGW / бен /../ Библиотека / GCC / mingw32 / 3.4.5 /../../../ libmingw32.a (main.o): main.c :: - 1 : ошибка: неопределенная ссылка на `WinMain @ 16 '
: - 1: ошибка: collect2: ld вернул 1 состояние выхода
И вот проблемы с компиляцией:
Выполнение шагов сборки для тестовой библиотеки проекта ...
Создание библиотеки макросов gdb ...
Конфигурация без изменений, пропуская шаг QMake.
Запуск: C: /Qt/mingw/bin/mingw32-make.exe отладка -w
mingw32-make: вход в каталог `D: / Projects / TestQTLibrary / testlibrary '
C: / Qt / mingw / bin / mingw32-make -f Makefile.Debug
mingw32-make [1]: вход в каталог `D: / Projects / TestQTLibrary / testlibrary '
g ++ -enable-stdcall-fixup -Wl, -enable-auto-import -Wl, -enable-runtime-псевдо-перемещение -Wl, -подсистема, консоль -mthreads -Wl -o debug \ testlibrary.exe -L "c: \ Qt \ qt \ lib"
D: \ Projects \ TestLibrary \ mathsLibrary \ Debug \ mathsLibrary.lib -lQtCored4
mingw32-make [1]: выход из каталога `D: / Projects / TestQTLibrary / testlibrary '
mingw32-make: выход из каталога `D: / Projects / TestQTLibrary / testlibrary '
C: / Qt / MinGW / бен /../ Библиотека / GCC / mingw32 / 3.4.5 /../../../ libmingw32.a (main.o): main.c:
(. Text + 0x104): неопределенная ссылка на `WinMain @ 16 '
collect2: ld вернул 1 статус выхода
mingw32-make [1]: * [debug \ testlibrary.exe] Ошибка 1
mingw32-make: * [отладка] Ошибка 2
Выход с кодом 2.
Ошибка при создании тестовой библиотеки проекта
При выполнении шага сборки 'Make'
Большое спасибо за любой совет,