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 :
Sortie complète du compilateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part release/main.o:main.cpp:(.text+0x51): undefined reference to `SCAN_Open@8'
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"
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 :
main.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager