Bonjour,
J'ai finalement réussi à "compiler Boost-log v1 avec Boost 1_46_1 en utilisant MinGW 4.4.0 sos Windows 7".
Voici le mail que je viens de poster sur la liste de diffusion boost pour expliquer comment j'ai fait.
Je l'ai traduit ici.
Vu le temps que ça m'a pris, j'espère que j'aurais au moins un vote ou deux pour gagner des "points forum". 
-------------- Erreur 1 --------------
Titre: Compiler Boost_log v1 avec Boost 1_46_1 qui inclus Filesystem v3
Symptome :
error: 'external_string_type' is not a member of 'boost::filesystem3::wpath'
Fix : utiliser Filesystem_version 2. L'explication ici
Ne pas oublier, dans les paramètres du projet qui utilisera boost log de définir
#define BOOST_FILESYSTEM_VERSION 2
-------------- Erreur 2 --------------
Titre : Using windows path
Symptome : une longue ligne d'erreur qui contient
et
"C:\Program" n'est pas reconnu comme une commande interne
Fix : réinstaller MinGW, en utilisant un chemin sans espace (typiquement pas c:\program files\..., mais plutot c:\programmes\...)
-------------- Erreur 3 --------------
Titre : Peut-être un bug de boost log v1
Symptome :
libs\log\src\event_log_backend.cpp:55: error: external linkage required for symbol 'boost::log_mt_nt5::sinks::event_log::success' because of 'dllexport' attribute
Fix (pas très glorieux) : Modifier les lignes 55/56/57/58 le fichier
libs\log\src\event_log_backend.cpp
De cette forme-ci
BOOST_LOG_EXPORT const event_type_t ...
vers cette forme là :
extern BOOST_LOG_EXPORT const event_type_t ...
-------------- Erreur 4 --------------
Titre : retour de l'erreur 1
Symptome : le fix de l'erreur 1 ne semble pas marcher en release, juste en debug.
Fix : Je n'ai rien fait : j'utilise les version debug des dll.
Ce qui implique que j'utilise aussi la version debug de boost::filesystem, boost::system, boost::thread et boost::regex.
-------------- Erreur 5 --------------
Titre : linker mon projet qui utilise boost log en monothread alors qu'il faut (pourquoi je ne suis pas sur) le linker en multi threadé
Symptome :
undefined reference to `boost::log_mt_nt5::basic_attribute_set<char>::~basic_attribute_set()'
Fix : Dans les paramètres de link du projet, remplacer
libboost_log-mgw44-d-1_46_1.dll
par
libboost_log-mgw44-mt-d-1_46_1.dll
remarquez le "-d" pour "debug" à cause de l'erreur 4.
Partager