Не могу подключить инородную библиотеку к программе на QT 4 под Windows.
Суть вопроса.
Есть библиотека для работы с сигнатурой (электронная подпись итд, что впрочем не важно)
Эта библиотека имеет файл статической библиотеки spki1.lib который все равно для исполнения требует
файлы динамических библиотек spki.dll, spkicom.dll
Файл проекта pkec2.pro имеет вид:
TEMPLATE = app
TARGET +=
DEPENDPATH += .
DEPENDPATH += D:\alex\Qt_Cpp\spkisdk\lib
LIBS += -LD:\alex\Qt_Cpp\spkisdk\lib
LIBS += D:\alex\Qt_Cpp\spkisdk\lib\spki1.lib
INCLUDEPATH += .
INCLUDEPATH += D:\alex\Qt_Cpp\spkisdk\inc
# Input
SOURCES += pkec2.cpp
#все нужные библиотеки находятся в каталоге D:\alex\Qt_Cpp\spkisdk\lib
далее делаю
qmake pkec2.pro
make
и получаю
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/alex/Qt_Cpp/PkEc2'
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-
s -Wl,-s -Wl,-subsystem,windows -o "release\PkEc2.exe" release\pkec2.o -L"c:\Qt\4.1.4\lib" -lmingw32
-lqtmain -LD:\alex\Qt_Cpp\spkisdk\lib D:\alex\Qt_Cpp\spkisdk\lib\spki1.lib -lQtGui4 -lQtCore4
release\pkec2.o(.text+0x1fc):pkec2.cpp: undefined reference to `VCERT_Initialize@12'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\PkEc2.exe] Error 1
mingw32-make[1]: Leaving directory `D:/alex/Qt_Cpp/PkEc2'
mingw32-make: *** [release] Error 2
Вот тут я и теряюсь.
VCERT_Initialize - это функция из spki1.lib, что такое @12 не знаю.
Я конечно могу поступить по другому - оформлять все функции которые опираются не на Qt-библиотеки ввиде dll
и вызывать их (пробовал и в описываемом случае - все работает), но хочется разобраться до конца.
И еще попутно вопрос - как составить проект, чтобы все библиотеки Qt использовались статически (чтобы приносить только exe-файл)
Прилагаю на всякий случай makefile.release
Не могу подключить инородную библиотеку к программе на QT 4 под Windows.
Модератор: Модераторы разделов
-
alex2256
- Сообщения: 7
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Не могу подключить инородную библиотеку к программе на QT 4 под Windows.
Надо сначала Qt перекомпилять статически:
configure.exe -debug-and-release -static -plugin-sql-mysql -plugin-sql-oci -qt-zlib -no-gif -qt-libpng -no-libmng -qt-libjpeg -no-qt3support
qmake.conf,
меняешь строчки
QMAKE_CFLAGS_MT = -MD
QMAKE_CFLAGS_MT_DBG = -MDd
QMAKE_CFLAGS_MT_DLL = -MD
QMAKE_CFLAGS_MT_DLLDBG = -MDd
на
QMAKE_CFLAGS_MT = -MT
QMAKE_CFLAGS_MT_DBG = -MTd
QMAKE_CFLAGS_MT_DLL = -MT
QMAKE_CFLAGS_MT_DLLDBG = -MTd
http://prog.org.ru/forum/topic_1546_0.html
http://prog.org.ru/forum/topic_3367_0.html
http://prog.org.ru/forum/topic_3090_413010...fba4935119.html
http://prog.org.ru/forum/htopic_3623_%D3%D...5%D3%CB%C9.html
В дисгармонии со вселенной.