IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Boost C++ Discussion :

boost et lua bind


Sujet :

Boost C++

  1. #1
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut boost et lua bind
    Salut,

    je cherche a utiliser luabind (0.8.1) avec boost (1.34)

    je connais rien à boost et je cherche pour l instant a compiler les exemples simples fournis avec lua bind

    je me pose qq questions

    1) la doc de luabind parle de ca :
    $ set BOOST_ROOT=...
    $ set LUA_PATH=...
    $ bjam stage

    j ai chopé ce bjam mais je comprends pas à quoi sert ce programme.

    je l ai lancé, ca lance une compil super longue et j ai ce message:

    Unknown compiler version - please run the configure tests and report the results

    comment le configurer pour visual studio 2008 ?

    2) a la compil j ai des erreurs complexes de template style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    C:\libs\luabind-0.8\luabind/function.hpp(28) : error C2780: 'boost::mpl::vector12<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) const,Wrapped *)'*: 2 arguments attendus - 1 fournis
    1>        C:\libs\luabind-0.8\luabind/detail/deduce_signature.hpp(107)*: voir la déclaration de 'luabind::detail::deduce_signature'
    1>        C:\libs\luabind-0.8\luabind/function.hpp(27)*: lors de la compilation de la fonction membre '<Inconnu>' de la classe <Inconnu>
    1>        C:\libs\luabind-0.8\luabind/function.hpp(50)*: voir la référence à l'instanciation de la classe modèle 'luabind::detail::function_registration<F,Policies>' en cours de compilation
    1>        with
    1>        [
    1>            F=void (__stdcall *)(GLenum),
    1>            Policies=luabind::detail::null_type
    1>        ]
    1>        C:\libs\luabind-0.8\luabind/function.hpp(56)*: voir la référence à l'instanciation de la fonction modèle 'luabind::scope luabind::def<void(__stdcall *)(GLenum),luabind::detail::null_type>(const char *,F,const Policies &)' en cours de compilation
    1>        with
    1>        [
    1>            F=void (__stdcall *)(GLenum),
    1>            Policies=luabind::detail::null_type
    1>        ]
    1>        .\projet_lua.cpp(397)*: voir la référence à l'instanciation de la fonction modèle 'luabind::scope luabind::def<void(__stdcall *)(GLenum)>(const char *,F)' en cours de compilation
    1>        with
    1>        [
    1>            F=void (__stdcall *)(GLenum)
    1>        ]
    l erreur est elle lié a un truc zappé en phase 1?

    si certains connaissent luabind et l utilisent avec VS2008, votre aide est la bienvenue

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Je ne connais pas luabind, mais je vais tenter de répondre...

    1/ bjam est une sorte de makefile pour boost. Ca permet de compiler la partie de boost qui a besoin de compilation. Sous visual C++, il faut généralement depuis une invite de commade visual C++ (qui a déjà positionné les variables qui vont bien) lancer un truc genre : bjam --toolset=msvc stage

    L'erreur est probablemetn due au fait que boost 1.34 prédate la sortie de MSVC2008. Peut-être que luabind marche avec un MSVC plus récent ?

    D'un autre côté, la doc de luabind a l'air de dire que les headers de boost lui suffisent (http://www.boost.org/doc/libs/1_34_0...only-libraries). Donc peut-être n'est-il pas nécessaire de compiler quoi que ce soit de ce côté. Il n'empêche que la version 1.34 de boost peut quand même poser des problèmes de compatibilité.

    2/ Sans voir le code, aucune idée.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    Salut et merci pour la réponse

    c est les explications fournies avec le download de luabind qui m ont orienté vers la version 1.34
    apparement c est la version qu il faut.

    le fichier INSTALL de luabind indique bien par contre qu il faut lancer bjam stage,

    pourtant j ai trouvé une version sur le net une version "out of the box" avec juste les headers (?)

    http://www.nuclex.org/articles/quick...ion-to-luabind

    mais meme avec cette version , en essayant de faire un exemple minimaliste avec opengl , j ai des erreurs de compilation


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    // --------------------------------------------------------------------------------------------- //
    // LuaBind example
    //
    // This example project for Microsoft(tm) Visual C++ 2008(tm) users
    // compiles out-of-the-box. Precompiled binaries can be found in the
    // "References" directory in case you wish to use them for other
    // projects. Pay attention to the runtime library (multithreaded dll)
    // setting and the different library files being used for debug and release
    // builds when you do so!
    // --------------------------------------------------------------------------------------------- //
     
    #include <windows.h>
     
    extern "C" {
      #include "lua.h"
      #include "lualib.h"
      #include "lauxlib.h"
    }
     
    // This is the only header we need to include for LuaBind to work
    #include "luabind/luabind.hpp"
     
    #include <GL/gl.h>
    #include <GL/glu.h>
     
    #include <iostream>
    #include <string>
     
    using namespace std;
     
     
    int main() {
      lua_State *L = lua_open();
     
      struct gl_constants {};
     
      using namespace luabind;
     
    	open(L);
     
    	module(L)
    	[	
    		class_<gl_constants>("gl")
    			.enum_("constants")
    			[
    				value("COLOR_BUFFER_BIT", GL_COLOR_BUFFER_BIT),
    				value("DEPTH_BUFFER_BIT", GL_DEPTH_BUFFER_BIT),
    				value("TRIANGLES", GL_TRIANGLES)
    			],
     
    		def("glBegin", &glBegin),
    		def("glVertex3", &glVertex3f),
    		def("glEnd", &glEnd)
    	];
     
      lua_close(L);
      return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    1>------ Début de la génération*: Projet*: LuaBindDemo, Configuration*: Debug Win32 ------
    1>Compilation en cours...
    1>LuaBindDemo.cpp
    1>Unknown compiler version - please run the configure tests and report the results
    1>c:\users\elk\desktop\luabind-binaries-2008-02-08\references\luabind\include\luabind\detail\primitives.hpp(68) : warning C4996: 'std::copy': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
    1>        c:\program files\microsoft visual studio 9.0\vc\include\xutility(2550)*: voir la déclaration de 'std::copy'
    1>c:\users\elk\desktop\luabind-binaries-2008-02-08\references\luabind\include\luabind\function.hpp(227) : error C2660: 'luabind::detail::free_functions::overload_rep::overload_rep'*: la fonction ne prend pas 2 arguments
    1>        c:\users\elk\desktop\luabind-binaries-2008-02-08\references\luabind\include\luabind\function.hpp(226)*: lors de la compilation de la fonction membre '<Inconnu>' de la classe <Inconnu>
    1>        c:\users\elk\desktop\luabind-binaries-2008-02-08\references\luabind\include\luabind\function.hpp(303)*: voir la référence à l'instanciation de la classe modèle 'luabind::detail::function_commiter<F,Policies>' en cours de compilation
    1>        with
    1>        [
    1>            F=void (__stdcall *)(GLenum),
    1>            Policies=luabind::detail::null_type
    1>        ]
    1>        c:\users\elk\desktop\luabind-binaries-2008-02-08\sources\luabinddemo.cpp(51)*: voir la référence à l'instanciation de la fonction modèle 'luabind::scope luabind::def<void(__stdcall *)(GLenum)>(const char *,F)' en cours de compilation
    1>        with
    1>        [
    1>            F=void (__stdcall *)(GLenum)
    1>        ]
    1>Le journal de génération a été enregistré à l'emplacement "file://c...BuildLog.htm"
    1>LuaBindDemo - 1 erreur(s), 1 avertissement(s)
    je pense pourant en tout point l exemple "glut_bind.cpp" fourni avec luabind 0.8.1

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Je m'en étais servi en compilant une lib il y a quelques temps. Pour le compiler j'ai tout simplement créé un projet VC++ (version 2008 aussi).

  5. #5
    Membre averti Avatar de Nogane
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 241
    Points : 323
    Points
    323
    Par défaut
    Je confirme, luabind ce contente des header de boost. Donc il suffit de définir le BOOST_ROOT.
    Je le fait tourner avec la boost 1.38 et y'a pas de soucie.

    Pour ce qui est de ton fichier cpp, mieux vaudrai commencer par compiler glut_bind.cpp et s'en servir de base, car il semble y avoir beaucoup de différences.

  6. #6
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    merci a tous, en fait j avais pas compris qu il fallait compilier une lib pour que ca fonctionne.. tout simplement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LUA BINDING] souci avec xml
    Par java-mobile dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 29/10/2008, 17h23
  2. C++ et Lua(bind)
    Par Charlie111 dans le forum C++
    Réponses: 3
    Dernier message: 06/10/2008, 13h14
  3. for_each + boost::bind = crash ?
    Par Patriarch24 dans le forum C++
    Réponses: 8
    Dernier message: 21/09/2007, 09h47
  4. Utilité de boost::bind ?
    Par swirtel dans le forum Boost
    Réponses: 5
    Dernier message: 07/09/2007, 16h27
  5. [Boost::bind] Cdecl / Callback
    Par superspag dans le forum Boost
    Réponses: 10
    Dernier message: 18/06/2007, 21h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo