2017-09-30 4 views
0

J'ai un projet Qt qui nécessite un boost. Le projet fonctionne bien sous Linux, mais la compilation sur Windows a présenté quelques difficultés. J'ai pu le faire fonctionner, mais pas correctement, et cela me dérange.Projet Qt avec Boost

est ici la partie pertinente de .pro (travail)

win32{ 
    INCLUDEPATH +=C:\Boost\Boost 
    LIBS += "C:\Boost\Boost\stage\lib\libboost_system-mgw53-mt-1_65_1.a" 
    LIBS += -lws2_32 
} 

Cela ne fonctionne pas, mais devrait selon la documentation que j'ai trouvé en ligne.

win32{ 
    INCLUDEPATH +=C:\Boost\Boost 
    LIBS += -LC:\Boost\Boost\stage\lib -lboost_system-mt 
    LIBS += -lws2_32 
} 

Remarque: Boost a été compilé en utilisant le Mingw distribué avec Qt Creator.

+0

Vous n'êtes pas sûr, mais pour plus de clarté, quelle est l'erreur que vous rencontrez? – MrEricSir

+0

: -1: erreur: ne peut pas trouver -lboost_system-mt et collect2.exe: -1: erreur: erreur: ld retourné 1 état de sortie (Copy-collé de la section Problèmes de Qt Creator) – KingofGamesYami

Répondre

0

Je crois avoir trouvé la solution! J'ai remarqué que j'avais deux copies de chaque bibliothèque de boost dans \ stage \ lib.

libboost_system-mgw53-mt-1_65_1.a et libboost_system-mgw53-mt-d-1_65_1.a

Je compilé le projet utilisant à la fois et alors que le premier avait quelques avertissements, ce dernier n'a pas. Suppression libboost_system-mgw53-mt-1_65_1.a du dossier autorisé -lboost_system-mt pour fonctionner très bien. Je ne sais pas pourquoi j'ai eu ces deux fichiers, mais c'était sans doute dû au fait que je fouillais avec un boost de compilation.

+1

'-d 'est synonyme de * version de débogage * par opposition à * version *. Voir [Nom de la bibliothèque] (http://www.boost.org/doc/libs/1_65_1/more/getting_started/windows.html#library-naming). –

+0

Hmm ... Il semble que la sortie du débogage et de la libération soit la valeur par défaut pour boost. Je me demande pourquoi cela confond mingw. – KingofGamesYami