Bonjour à tous,
J'ai bien envie de me mettre à boost, (de remplacer tout ce que je fais avec Qt et que boost sait déjà faire) mais je crois que je suis pas doué :
(j'utilise boost 1.53, Qt creator 2.4.1, Qt 4.7.4, mingw32 4.4)
J'aimerais utiliser les shared_memory_object.
la doc dit que Boost.Interprocess est "header only" et pourtant j'ai des erreurs de link du genre :
undefined reference to `_imp__VariantClear@4
la doc dit aussi qu'il y a une dépendance avec Boost.DateTime qui, elle, demande à être compilée.
Si j'ajoutepour éviter cette dépendance, rien n'y fait : exactement les mêmes erreurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define BOOST_DATE_TIME_NO_LIB
D'autre part, ayant compilé les libs, j'ai justement essayé d'utiliser Boost.DateTime, et là, tout fonctionne ! (j'utilise des boost::gregorian::date_period, to_simple_string, ... tout compile et tourne)
Du coup, là, j'arrive à utiliser des lib qui ont besoin d'être compilées et pas des header-only ... (me trompe-je ?)
Donc si quelqu'un pouvait enlever la poutre que j'ai dans l'oeil, je vous en serais infiniment reconnaissant !
PS : pour ceux qui connaissent qmake, voici ce que je met dans le .pro :
pour les headers : 'INCLUDEPATH += ../libs/boost_1_53_0'
pour la lib DateTime : 'LIBS += -L"../libs/boost_1_53_0/stage/lib" -lboost_date_time-mgw44-mt-1_53'
Dans mon fichier cpp :
et je n'utilise pas les espaces de noms pour être sûr de ne pas avoir de conflits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #include <boost/interprocess/managed_shared_memory.hpp> #include <boost/date_time/gregorian/gregorian.hpp>
Quoi qu'il advienne, merci à ceux qui auront eu le courage de me lire !
Partager