Utiliser des fichiers LIB de Visual Studio avec Qt
Bonjour,
Résumé de mon projet :
Développement d'une application sous windows CE 6.0 / 5.0 via la cross compilation sur des terminaux code barre (usage industriel).
Pour compléter mon projet qui est presque fini, (QT est vraiment super bien pour la cross-compilation avec Visual-studio ♥♥).
Je veut utiliser des fonctions disponibles dans une library STATIC, sous le nom de SCNAPI32.lib conçu en 'C' pour visual studio 2005 / 2008, externe à QT. Je suis sous windows, QT 4.7.4 (32 bit), Qt Creator 2.4.1 et Visual studio 2008.
La library passe bien sous visual studio 2008 mais je souhaite utiliser QT. C'est une library fournie par l'entreprise Motorola pour le développement sur leurs machines LIEN.
Le problème doit être dans l'inclusion de la library car je vois les fonctions mais le compilateur me sort :
Code:
release/main.o:main.cpp:(.text+0x51): undefined reference to `SCAN_Open@8'
Sortie complète du compilateur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 19:23:03: Exécution des étapes de compilation pour le projet TEST...
19:23:03: Configuration inchangée, étape QMake sautée.
19:23:03: Débute : "C:\QtSDK\mingw\bin\mingw32-make.exe"
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Release
mingw32-make.exe[1]: Entering directory `C:/QtSDK/projet/TEST'
g++ -Wl,-s -mthreads -Wl,-subsystem,windows -o release\TEST.exe release/main.o release/test.o release/qscanner.o release/moc_test.o -L"c:\QtSDK\Desktop\Qt\4.8.0\mingw\lib" -lmingw32 -lqtmain -LC:/QtSDK/projet/TEST/m_lib/ -lSCNAPI32 -LC:/QtSDK/projet/TEST/ -lRFIDAPI32PC -lQtGui4 -lQtCore4
release/qscanner.o:qscanner.cpp:(.text+0xfb): undefined reference to `SCAN_Open@8'
collect2: ld returned 1 exit status
mingw32-make.exe[1]: Leaving directory `C:/QtSDK/projet/TEST'
mingw32-make.exe[1]: *** [release\TEST.exe] Error 1
mingw32-make.exe: *** [release] Error 2
19:23:03: Le processus "C:\QtSDK\mingw\bin\mingw32-make.exe" s'est terminé avec le code 2.
Erreur à la compilation du projet TEST (cible : Desktop)
Lors de l'exécution de l'étape "Make" |
Suite à plusieurs visites sur des forums ou le .moc n'était plus généré lors de la compilation. J'ai vérifié et il est bien régénéré à chaque compilation.
RÉSUME DE MON CODE :
(pour inclure la library dans QT j'ai fait clique droit sur mon projet -> add libary -> external lib -> static -> rep des includes / chemin du .lib et QT me rajoute cela dans mon .pro)
.pro :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| QT += core gui
TARGET = TEST
TEMPLATE = app
SOURCES += main.cpp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/m_lib/ -lSCNAPI32
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/m_lib/ -lSCNAPI32d
INCLUDEPATH += $$PWD/m_include
DEPENDPATH += $$PWD/m_include
win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/m_lib/SCNAPI32.lib
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/m_lib/SCNAPI32d.lib
QMAKE_CXXFLAGS_WARN_ON += -Wno-unknown-pragmas |
main.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <QtGui/QApplication>
#include <windows.h>
#include <windowsx.h>
#include <ScanCApi.h>
int main(int argc, char *argv[])
{
HANDLE hScanner = NULL;
SCAN_Open(TEXT("SCN1:"), &hScanner);
QApplication a(argc, argv);
return a.exec();
} |
Lien des sources (lib + include)
Merci beaucoup de vôtre aide.
Cordialement