2011-05-23 6 views
10

Utilisation de Visual Studio 2008 et Bibliothèques Boost 1.46.1 Je veux compiler et lier les éléments suivants avec le/CLR drapeau:Threads Boost avec CLR

#include <boost/thread/thread.hpp> 
void run() {} 
int main(int argc, char *argv[]) 
{ 
    boost::thread t(run); 
} 

La première erreur est sur une struct factice avant déclarée dans boost :: thread. This post travaux autour de ce en déclarant:

namespace boost { 
    struct thread::dummy {}; 
} 

Bien sûr, maintenant je peut compiler, mais j'obtenir l'avertissement de linker

Avertissement 1 avertissement LNK4248: jeton typeref non résolu (0100001F) pour « boost.detail .win32._SECURITY_ATTRIBUTES '; l'image ne peut pas fonctionner

Exécution des résultats d'application dans

L'application n'a pas pu démarrer correctement (0xc000007b).

Aucune des suggestions dans le fil de discussion mentionné précédemment ne fonctionne pour moi. J'ai construit une version statique de la lib Boost Threads, et il fonctionne bien sans le drapeau/CLR. Debug/Release ne fait aucune différence. Je cours sous Win7 32 bits.

Des indices?

+1

duplication possible de [problèmes C++/CLI boost mutex] (http://stackoverflow.com/q/5670248/636019) – ildjarn

+0

@ildjarn: comment est-ce? Ceci est une erreur de lien. Le thread lié est une erreur d'exécution. –

+0

@Matt: "* L'application n'a pas pu démarrer correctement (0xc000007b). *" Ressemble à une erreur d'exécution pour moi. – ildjarn

Répondre

3

J'ai déjà rencontré ce problème, je ne me souviens pas où j'ai eu ceci mais une solution de contournement est de déclarer "boost.detail.win32._SECURITY_ATTRIBUTES" après avoir inclus tous les en-têtes de boost comme ça.

namespace boost { 
    namespace detail { 
     namespace win32 { 
      struct _SECURITY_ATTRIBUTES: public ::_SECURITY_ATTRIBUTES {}; 
     }; 
    }; 
}; 

Supprimez les espaces de noms si vous souhaitez que tout le monde puisse les voir.

+0

Bingo! voici le fil d'origine http://lists.boost.org/threads-devel/2009/10/0502.php – namar0x0309

Questions connexes