2012-06-07 2 views
1

Ayant besoin d'ajouter la version 64 bits du moteur graphique Ogre (le plus récent au moment de l'écriture de ce post, soit 1.8.0), j'ai suivi their hints et ouvert une invite de commande visuelle C++ x64 et tapé ceci:Boost de construction pour Ogre 64 bits

bjam --build-dir=vc10 --toolset=msvc-10.0 --address_model=64 --with-thread --with-date_time --build-type=complete stage 

C'est aussi loin que je suis arrivé avec boost convaincant pour construire des objets lib pour un compilateur windows 64 bits. J'utilise Visual Studio 2010 Premium et les outils CMake pour compiler Ogre à partir des sources. C'est là que les choses se gâtent:

Error 276 error LNK1104: cannot open file '..\..\lib\Debug\OgreMain_d.lib'  
Error 119 error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 

Je crains que je ne ferai passer cette question dans un proche avenir que je suis tout à fait pas l'habitude de travailler avec de grandes bases de code qui dépendent fortement des dépendances que je dois, aussi, construire à partir de zéro. Pourriez-vous s'il vous plaît fournir un indice ou un lien vers quelque chose que j'ai peut-être manqué? Merci ..

MISE À JOUR Il y a un site Web contenant les bibliothèques déjà construites, mais il serait bien d'apprendre pourquoi les --address modèle et --address espace drapeaux ne fonctionnent pas . Sinon comment utiliser bjam pour construire les bibliothèques?

Répondre

2

La commande bjam comporte quelques erreurs. Vous ne voulez pas un -- devant toolset ou address-model, et address-model a un tiret, pas un trait de soulignement.

Ainsi, la commande vous avez probablement visiez est:

bjam --build-dir=vc10 toolset=msvc-10.0 address-model=64 --with-thread --with-date_time --build-type=complete stage 
+0

Merci, je pense que je dois faire deux choses: vérifier mes yeux et corriger les tutoriels officiels d'Ogre (car ils utilisent --toolset). Pas étonnant que address_model n'ait pas été reconnu comme un drapeau valide par _bjam_ – teodron

1

La première erreur est explicite - Le fichier lib n'existe pas dans le chemin spécifié. La deuxième erreur indique que vous construisez pour 64 bits mais qu'une des bibliothèques de dépendances utilisées est compilée pour 32 bits.

+0

Tout à fait clair à ce sujet, la première erreur pourrait être une cause de problème par la question exacte à ma question: comment construire ces bibliothèques Boost pour 64 bits compilateurs? Bien que j'aie utilisé le boost 'bjam' avec l'indicateur '--address_model = 64' depuis l'invite MS VC, il n'a pas produit '.libs' pour une cible 64 bits (j'ai vérifié cela avec le 'dumpbin' utilitaire). Je pense que si je me débarrasse du problème 64 vs 32, je vais le résoudre. – teodron

1

Essayez de télécharger des fichiers binaires Boost précompilés à partir de there et installez-les à l'emplacement par défaut. Cela permettra à CMake de localiser correctement la bibliothèque et d'inclure des répertoires.

+0

Je l'ai déjà fait, ils ont tous 32 bits. Pour le 64 bits, j'ai trouvé une version répertoriée dans [this] (http://stackoverflow.com/questions/2322255/64-bit-version-of-boost-for-64-bit-windows) SO thread comme réponse (la seconde je crois) – teodron

Questions connexes