Utiliser une bibliothèque statique ?
Bonjour,
Mon projet global comprend une librairie statique compilée avec le .pro suivant:
Code:
1 2 3 4 5 6 7
| TARGET = kissfft
TEMPLATE = lib
CONFIG += staticlib
[...]
DESTDIR = bin |
Et une application qui utilise cette librairie statique avec le .pro suivant:
Code:
1 2 3 4
| LIBS += -Lkissfft/bin -lkissfft
INCLUDEPATH += kissfft
DEPENDPATH += kissfft/bin
PRE_TARGETDEPS += kissfft/bin |
J'utilise Qt Creator 2.6.0 avec Qt5b2, et le compilateur MSVC2010.
Dès que mon application essaye d'utiliser la librairie statique, j'obtiens ce genre d'erreurs:
Code:
1 2 3
| buffer.obj:-1: erreur : LNK2019: unresolved external symbol "void __cdecl kiss_fftr(struct kiss_fftr_state *,float const *,struct kiss_fft_cpx *)" (?kiss_fftr@@YAXPAUkiss_fftr_state@@PBMPAUkiss_fft_cpx@@@Z) referenced in function "public: virtual void __thiscall threadR2C::run(void)" (?run@threadR2C@@UAEXXZ)
texbuffer.obj:-1: erreur : LNK2001: unresolved external symbol "void __cdecl kiss_fftr(struct kiss_fftr_state *,float const *,struct kiss_fft_cpx *)" (?kiss_fftr@@YAXPAUkiss_fftr_state@@PBMPAUkiss_fft_cpx@@@Z) |
Je ne comprend pas pourquoi ces erreurs de linkage, dans la mesure ou c'est le même compilateur qui est utilisé pour la librairie et l'application ... Une idée ?
NB: la fonction qui n'est pas trouvé (kiss_fftr) n'est pas une fonction déclaré dans le header global de la librairie, mais une fonction intrinsèque à la librairie (appelée par une fonction du header global, mais qui ne fait pas partie du header global).