web-dev-qa-db-fra.com

Comment utiliser les bibliothèques Boost dans un projet qmake?

Il y a quelques jours, j'ai compilé Boost ver. 1.53.0 pour VS2012. Cela fonctionne bien, compile bien. Maintenant, je veux utiliser Boost avec Qt Creator. Dans le fichier .pro que j'ai inclus

INCLUDEPATH += C:\boost\boost_1_53_0\  -lboost_filesystem
LIBS += C:/boost/boost_1_53_0/stage/lib/

Mais lorsque je compile, j'obtiens 2 erreurs:

:-1: error: cannot find C:/boost/boost_1_53_0/stage/lib/: Permission denied
collect2.exe:-1: error: error: ld returned 1 exit status

Que devrais-je faire? J'ai googlé mais semble que je suis le premier avec cette erreur.

11
ddacot
INCLUDEPATH += C:\boost\boost_1_53_0\  -lboost_filesystem
LIBS += C:/boost/boost_1_53_0/stage/lib/

Faux.

Lis ça .

Solution:

INCLUDEPATH += C:/boost/boost_1_53_0/
LIBS += "-LC:/boost/boost_1_53_0/stage/lib/"

Boost a des noms de bibliothèque compliqués ("libboost_filesystem-vc90-mt-1_53.lib") et dans le cas de msvc, il les lie automatiquement.) Si vous souhaitez lier une bibliothèque supplémentaire, procédez comme suit:

LIBS += "-LMyLibraryPath" -lmylib

Où MyLibraryPath est le chemin de la bibliothèque et mylib est la bibliothèque avec laquelle vous souhaitez établir un lien.

je suis le premier avec cette erreur.

L'erreur se produit probablement parce que le compilateur essaie d'ouvrir le répertoire comme s'il s'agissait d'un fichier ou quelque chose du genre.

21
SigTerm
win32 {
    INCLUDEPATH += C:/Users/User/Downloads/dev/boost_1_61_0
    LIBS += "-LC:/dev/Boost/lib/" \
    "-Llibboost_filesystem-mgw53-mt-d-1_61.a", "-Llibboost_system-mgw53-mt-d-1_61.a", "-Llibboost_serialization-mgw53-mt-d-1_61.a" -LLIBS

}
0
thistleknot