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