[Boost.Interprocess] probleme de link ou plutot de newbie
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:
#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 ! :aie:
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:
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 !