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'ajoute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
#define BOOST_DATE_TIME_NO_LIB
pour éviter cette dépendance, rien n'y fait : exactement les mêmes erreurs

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 :
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>
et je n'utilise pas les espaces de noms pour être sûr de ne pas avoir de conflits.


Quoi qu'il advienne, merci à ceux qui auront eu le courage de me lire !