2016-10-03 2 views
0

J'ai une application Qt & quelques bibliothèques construites en utilisant le fichier .pro dans chaque. Lors de la construction pour Windows, je veux construire mon application en mode débogage & donc lien vers les versions de débogage de mes bibliothèques. Tout si ceci est un lien statique. Je construis les versions de débogage de mes bibliothèques. Tout va bien. Les fichiers pdb sont également générés dans le dossier de construction.Comment faire application Qt pas ajouter D en essayant de relier à ma bibliothèque

Mais quand je construis mon application, il se plaint de l'erreur suivante un D à annexant mon nom de la bibliothèque !!!

error: LNK1104: cannot open file 'MyLibD.lib'

Il devrait rechercher MYLIB.LIB pas MyLibD.lib comme je préciser ci-dessous dans MyApp.pro. Voici comment je créer un lien vers ma bibliothèque dans MyApp.pro

LIBS   += -L$$MyLib_build_location -lMyLib 
Release:win32: LIBS += -L$$MyLib_build_location -lMyLib 
Debug:win32: LIBS += -L$$MyLib_build_location -lMyLib 
INCLUDEPATH += $$MyLib_include_location/ 
DEPENDPATH  += $$MyLib_include_location/ 
unix:PRE_TARGETDEPS += $$MyLib_build_location/MyLib.a 
Release:win32:PRE_TARGETDEPS += $$MyLib_build_location/MyLib.lib 
Debug:win32:PRE_TARGETDEPS += $$MyLib_build_location/MyLib.lib 

Pourquoi Windows OS attend ma bibliothèque doit être annexée avec D en mode débogage? Comment peut faire Qt chercher le même nom que TARGET spécifié dans la bibliothèque .pro?

Notez que, j'utilise édition communautaire Visual Studio 2015 ainsi que Qt Creator pour le compilateur C++

+0

Pourquoi avez-vous tous ces drapeaux de l'éditeur de liens de doublons? –

+0

Peut-être que je n'ai pas besoin de tout ça. Essayer juste tous les moyens de se débarrasser du problème. Des suggestions sur la façon dont je peux lier aux versions de débogage de ma bibliothèque? –

+0

@JoachimPileborg simplifier pour ne pas avoir le Release & Debug ajouté obtient également la même erreur. Je ne sais pas comment résoudre ce problème. Vraiment besoin de quelques suggestions pls –

Répondre

0

Vous construisez une version de débogage de votre application: il doit créer un lien avec les bibliothèques de débogage! Vous devez corriger les fichiers de projet pour les bibliothèques afin que la version de débogage soit disponible, avec le préfixe correct.

Notez également que les modifications manuelles des lieux de construction est généralement contre-productif.