2009-10-19 7 views
1

J'essaie d'utiliser des threads boost dans un projet ayant une prise en charge du langage commun. J'ai l'erreur de lien suivante. erreur LNK2022: opération de métadonnées échouée (8013119F): Il existe un TypeRef qui doit avoir un TypeDef correspondant: (fictif): (0x01000073).Erreur de liaison: LNK2022

Si je commente la ligne instancier le fil boost, je ne reçois pas d'erreur de liaison.

J'ai essayé de chercher en ligne pour corriger cette erreur, à un tel endroit, il a été suggéré d'utiliser "#define BOOST_THREAD_USE_DLL" avant d'inclure toute bibliothèque de boost. J'ai essayé mais ça me donne toujours la même erreur.

Il y a un fil lié, ("LNK2022: metadata operation failed" driving me insane) mais ce nest pas le même problème, mais un peu similaire. J'ai essayé le correctif suggéré là mais toujours pas de chance.

Est-ce que quelqu'un sait comment résoudre ce problème? Visual Studio ne prend pas en charge les références de valeur r.

+1

Que diriez-vous d'ajouter au moins la ligne incriminée? –

Répondre

0

Vérifiez vos options de configuration boost pour vous assurer que vous utilisez le bon jeu d'outils. (voir la documentation de l'ampli)

De plus, assurez-vous d'avoir la version actuelle de boost.

-PaulH

+0

J'utilise boost version 1.37 et je ne peux pas le mettre à jour vers une nouvelle version. Est-ce à cause d'une version plus ancienne? –

6
# include <boost/thread.hpp> 
namespace boost { 
    struct thread::dummy {}; 
} 

Cela m'a aidé

+0

m'a aidé aussi bien ne sais pas pourquoi. d'ici http://www.svprogramming.net/news/archive.html 9 Janvier, 2009 Si vous utilisez boost :: fil + 1,37 Visual Studio 2008 SP1 option +/clr et obtenez l'erreur d'éditeur de liens LNK2022: opération de métadonnées a échoué (8013119F): Il existe un TypeRef qui doit avoir un TypeDef correspondant: (fictif): (0x0100001e). Ajouter au fichier cpp problématique: namespace boost { \t struct thread :: dummy {}; } – javapowered

Questions connexes