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

Visual C++ Discussion :

Utiliser revel pour générer de la vidéo


Sujet :

Visual C++

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Points : 65
    Points
    65
    Par défaut Utiliser revel pour générer de la vidéo
    Bonjour à tous, j'ai récupéré la librairie Revel sur internet (http://revel.sourceforge.net/). J'aimerais savoir si quelqu'un l'a déjà utilisée dans un des ses programmes pour qu'il m'aide à l'utiliser ?

    J'ai décidé de prendre directement la version binaire pour Windows. Sur le site il est écrit :

    A binary distribution of the Revel libraries for Win32 (compiled with MSVC .NET 2003) is also available, which is statically linked against xvidcore 1.0.2, so you can really just plug and play.
    Donc, à partir des fichiers revel.h et revel.lib, je crée un nouveau projet sous VS C++ Express 2005... j'ajoute même un reveltest.cpp qui est sensé me faire une petite démo... et je n'arrive même pas à compiler cet exemple de base !

    En effet, j'ai ces erreurs là :

    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
    Édition des liens en cours...
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _free déjà défini(e) dans LIBCMT.lib(free.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _malloc déjà défini(e) dans LIBCMT.lib(malloc.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _realloc déjà défini(e) dans LIBCMT.lib(realloc.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __chsize déjà défini(e) dans LIBCMT.lib(chsize.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _exit déjà défini(e) dans LIBCMT.lib(crt0dat.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __strnicmp déjà défini(e) dans LIBCMT.lib(strnicmp.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _fclose déjà défini(e) dans LIBCMT.lib(fclose.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _fopen déjà défini(e) dans LIBCMT.lib(fopen.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strncmp déjà défini(e) dans LIBCMT.lib(strncmp.obj)
    MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) déjà défini(e) dans LIBCMT.lib(typinfo.obj)
    MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) déjà défini(e) dans LIBCMT.lib(typinfo.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) déjà défini(e) dans LIBCMT.lib(stdexcpt.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: "public: __thiscall std::exception::exception(void)" (??0exception@std@@QAE@XZ) déjà défini(e) dans LIBCMT.lib(stdexcpt.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) déjà défini(e) dans LIBCMT.lib(stdexcpt.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z) déjà défini(e) dans LIBCMT.lib(stdexcpt.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __close déjà défini(e) dans LIBCMT.lib(close.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __write déjà défini(e) dans LIBCMT.lib(write.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __open déjà défini(e) dans LIBCMT.lib(open.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __lseek déjà défini(e) dans LIBCMT.lib(lseek.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __read déjà défini(e) dans LIBCMT.lib(read.obj)
    LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
    Je reconnais bien les fonctions de base, mais comment est-ce possible que plusieurs fichiers différents les redéfinissent ?

    LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library Visual semble me donner une solution pour régler problème (il y en aura d'autres, je suis sur). Qu'est-ce que "utilisez /NODEFAULTLIB:library" veut dire ?

    C'est peut-être tout bête, mais même si j'ai appris le C++ au cour de ma formation, il est vrai qu'on n'a jamais eu à utiliser des librairies existantes, c'est pourquoi je me vois confronté à un ensemble de problèmes qu'on apprend surement à régler avec l'expérience.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    A part ça, j'ai quelques interrogations :

    Revel dépend de Xvid. Voici ce qui est précisé sur le site :

    In order to compile Revel, you must have already compiled and installed the XviD core libraries.
    Est-ce que cela signifie que si j'utilise directement revel.lib, je n'ai pas besoin de compiler moi même Xvid ? Dans ce cas, suffit-il que j'installe la dernière version du codec sur mon PC aussi simplement que si j'en avais besoin pour regarder une vidéo sur mon lecteur préféré ?

    En effet, ces lignes me font peur :

    Compiling Revel under Windows is not recommended for the impatient or faint of heart. To be more specific, compiling XviD under Windows is kind of a pain, and Revel requires XviD.
    Et juste pour vérification que j'ai bien compris un principe de base :

    "which is statically linked against xvidcore 1.0.2" >> signifie bien que lib revel.lib possède une référence sur Xvid - qui doit donc être installé par ailleurs - de la même façon qu'un programme aurait besoin d'une dll en particulier ?

    Je vous remercie de bien vouloir confirmer mes suppositions, affiner ma compréhension, m'expliquer les inconnues... bref, de m'éclairer un petit peu :-)

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Liaison statique = la bibliothèque est utilisée mais inclue dans le .dll, donc pas de pb pour toi.

    L'erreur que tu as provient du fait que la bibliothèque utilise une autre bibliothèque run-time que toi, donc prends la même qu'elle - en général bibliothèque multithread de débuggage ou pas -

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Points : 65
    Points
    65
    Par défaut
    Merci de ta réponse

    Je n'ai rien compris au début mais cela m'a donné des pistes de recherches. J'ai vu que de nombreuses personne avaient rencontré ce problème, l'avait résolu mais n'en avait pas toujours compris la raison.

    Voici un lien qui peut éclaircir les esprits troublés : http://msdn2.microsoft.com/fr-fr/lib...y3(VS.80).aspx

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/09/2010, 15h29
  2. Utiliser Talend pour générer des rapports en BIRT
    Par MarENSI dans le forum Autres outils
    Réponses: 3
    Dernier message: 13/09/2010, 18h11
  3. Utiliser DirectShow pour de la capture vidéo et audio dans VB6
    Par Chekov dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 18/04/2008, 10h17
  4. utilisation Omondo pour générer un diagramme UML
    Par Sarah22 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 20/03/2007, 09h56
  5. [MySQL] utiliser PROPEL pour générer mes classes
    Par nawal_ensias dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/02/2007, 13h21

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