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

C++ Discussion :

Portage d'une librairie linux sous windows


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Portage d'une librairie linux sous windows
    Bonjour,

    Pour mon stage de fin d'étude, je dois porter une librairie linux sous windows (libmpeg3).
    Je suis bien habitué au développement linux mais j'avoue que sous windows, je suis un peu pommé.

    Lorsque j'utitlise cette librairie sous linux, j'inclue un fichier libmpeg3.a . Bien entendu, il est compilé pour linux, donc ca ne marche pas sous windows !

    A quoi correspond l'extension .a sous windows ? .lib ?

    J'utilise le compilateur borland (bcc32, gpp32, ilink32).
    Je voudrais creer un libmpeg3.lib a partir de libmpeg3.c et libmpeg3.h

    Quelle est la commande pour creer une librairie sous windows ?

    J'ai cherché sur le web un tutoriel pour makefile sous windows, mais je n'en ai trouvé que pour linux !

    Toutes remarque sera bonne a prendre, merci.

    ______________
    Sleg Linuxien

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Sous Windows :
    .LIB = librairie statique.
    .DLL = librairie dynamique.

    Habituellement, on n'utilise pas de makefiles sous Windows, mais plutôt les projets des IDE. Tu nous as donné ton compilateur : OK, mais avec quel environnement de développement l'utilises-tu ? Borland C++ ? C++ Builder 6 ? C++ Builder X ? Autre ?

    De mémoire, c'est TLIB qu'il faut utiliser pour créer une lib statique, mais en général, on se préoccupe rarement de l'exécutable derrière : on fait "Nouveau projet -> Librairie statique", c'est un peu plus simple.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    J'utitlise Borland 5.5 Compiler de leur freeCommandLineToll.

    En fait j'ai développé une appli Qt sous linux qui utilise la libmpeg3.

    J'ai réussi a compiler mon appli sous windows, sauf qu'à l'édition de liens, il ne retrouve pas les fonctions de la libmpeg.
    Pourtant, c'est fonctions se trouvent dans le fichier libmpeg3.c que j'ai intégré a mon projet, et il le compile bien et me créé le libmpeg3.obj

    Voila ce qu'il me dit :

    MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp.
    ilink32 @MAKE0000.@@@
    Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
    Error: Unresolved external 'mpeg3_check_sig(char *)' referenced from Z:\STAGE\MT
    P\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_close(mpeg3_t *)' referenced from Z:\STAGE\MTP
    \VIDEO.OBJ
    Error: Unresolved external 'mpeg3_open(char *)' referenced from Z:\STAGE\MTP\VID
    EO.OBJ
    Error: Unresolved external 'mpeg3_video_width(mpeg3_t *, int)' referenced from Z
    :\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_video_height(mpeg3_t *, int)' referenced from
    Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_video_frames(mpeg3_t *, int)' referenced from
    Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_audio_samples(mpeg3_t *, int)' referenced from
    Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_frame_rate(mpeg3_t *, int)' referenced from Z:
    \STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_set_frame(mpeg3_t *, long, int)' referenced fr
    om Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_read_yuvframe_ptr(mpeg3_t *, char * *, char *
    *, char * *, int)' referenced from Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_sample_rate(mpeg3_t *, int)' referenced from Z
    :\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_set_sample(mpeg3_t *, long, int)' referenced f
    rom Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_read_audio(mpeg3_t *, float *, short *, int, l
    ong, int)' referenced from Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_audio_channels(mpeg3_t *, int)' referenced fro
    m Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_reread_audio(mpeg3_t *, float *, short *, int,
    long, int)' referenced from Z:\STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_get_sample(mpeg3_t *, int)' referenced from Z:
    \STAGE\MTP\VIDEO.OBJ
    Error: Unresolved external 'mpeg3_get_frame(mpeg3_t *, int)' referenced from Z:\
    STAGE\MTP\VIDEO.OBJ

    ** error 2 ** deleting mtp.exe

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Si tu utilises un qmake file qui fonctionne sous Linux, à priori il devrait fonctionner sous Windows.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Oui, le qmake fonctionne, c'est juste que pour mon projet, j'ai inclu le libmpeg3.a
    Donc sous linux, il le trouve et compille comme il faut, mais sous windows, ça marche pas vu que ce fichier a été compilé pour linux !

    Je voudrais bien recompiler toute la librairie mais le Makefile est un peu trop compliqué pour moi !
    http://perso.wanadoo.fr/t.sleg/Makefile.txt

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par sleg
    J'utitlise Borland 5.5 Compiler de leur freeCommandLineToll.
    A ta place, j'irais sérieusement regarder du côté de C++ Builder X Personal, disponible en libre téléchargement chez Borland...
    Au moins, tu auras un IDE correct, et même la possibilité d'utiliser GCC si tu le préfères (je n'en vois pas l'intérêt, mais pourquoi pas ?). De plus, C++ Builder X intègre nativement 2 chaînes de compilation : celle de Borland C++ 5.5, et MinG/W (portage GCC Win32).
    Le principal avantage, qui n'est vraiment pas neutre, est que tu auras une gestion de tes projets correcte, ainsi que la possibilité de débugger directement au sein de l'IDE.

    Citation Envoyé par sleg
    J'ai réussi a compiler mon appli sous windows, sauf qu'à l'édition de liens, il ne retrouve pas les fonctions de la libmpeg.
    Pourtant, c'est fonctions se trouvent dans le fichier libmpeg3.c que j'ai intégré a mon projet, et il le compile bien et me créé le libmpeg3.obj
    Ce n'est pas parcequ'il est compilé qu'il est linké... Pas la peine de poser ton makefile, je n'en utilise absolument jamais (je me contente de demander aux IDE de les générer automatiquement pour les compilations automatiques, pas plus). Je ne sais absolument pas quelle est l'option de ligne de commande pour ajouter ce .OBJ/.LIB au projet.

    Très sérieusement, downloade un véritable IDE, ça aura au moins le mérite de te simplifier la vie et résoudre tes problèmes en une seule opération... ;-) Il n'est pas dans la mentalité Windows de se peler avec les makefiles et les lignes de commande pour développer...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  7. #7
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Question bête, mais puisque QT est maintenant disponible sous Windows, pourquoi ne pas l'utiliser plutôt qu'un portage?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Merci Mac Lak, je vais voir du coté de l'IDE

    Question bête, mais puisque QT est maintenant disponible sous Windows, pourquoi ne pas l'utiliser plutôt qu'un portage?
    Mon appli est sous Qt mais j'utilise la librairie libmpeg3 qui est en C mais pas développée sous Qt elle.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Question bête : la libmpeg3 existe-t-elle sous Windows ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Bah non c'est ça le probleme !!

    En tout cas j'ai beaucoup cherché, j'ai pas trouvé !

  11. #11
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Comment espères-tu que ça va fonctionner alors ? Tu utilises un lib qui n'existe pas sous Windows, donc tu pourras pas compiler sous Windows.

  12. #12
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Arf... C'est une lib statique d'importation de DLL, ce machin-là ???
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Comment espères-tu que ça va fonctionner alors ? Tu utilises un lib qui n'existe pas sous Windows, donc tu pourras pas compiler sous Windows.
    Bah ouai mais j'ai toutes les sources ! Il "suffit" de recompiler pour windows !

    Je suis en train d'essayer de recompiler avec un IDE, je vous tiens au courant

  14. #14
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Il "suffit" de recompiler pour windows !
    je pense que ça n'était "que" ça, ça aurait été fait. Faut surtout que le code source soit compilable sous Windows. Linux et Windows, c'est 2 mondes très différents...
    D'ailleurs sous Windows y'a pas mal de choses qui existent déjà.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    je pense que si ça n'était "que" ça, ça aurait été fait.
    C'est bien ce que je pense malheureusement ! C'est pour ca que j'ai mis le mot suffit entre guillemets
    Je vais tout de même voir ...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Finalement, je crois que c'est pas une bonne idée !

    Il faudrait que je me réécrive presque tout, et c'est pas mon code alors j'en aurai pour des plombes ...

    Je pense plutôt rechercher une librairie pour la décompression mpeg sous windows. Savez vous ou je peux trouver ça ?
    Google a pas l'air de donner grand chose !

  17. #17
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Quel version de MPEG ? Quel layer ?
    Si c'est pour décoder du MP3 (le nom de ta librairie le laisse penser), on utilise plutôt un codec, sous Windows...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    C'est pour décoder des videos mpeg (audio/video)

    J'ai besoin de naviguer une video mpeg a la frame pres et récupérer les buffers Y,U et V
    par exemple, pour la libmpeg, j'utilise la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mpeg3_read_yuvframe_ptr(file,y_output,u_output,v_output,0);
    J'accede ainsi au trois buffers de la frame 0 de fichier file.

    C'est hyper simple.

    Quelqu'un connait-il un equivalent windows ?

    En ce qui conscerne les codecs, j'ai jamais développé avec, je vais me renseigner ...


    Merci

  19. #19
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par sleg
    C'est pour décoder des videos mpeg (audio/video)
    <snip>
    Quelqu'un connait-il un equivalent windows ?
    Pour du MPEG1, les codecs sont faciles à trouver, étant donné qu'ils sont souvent installés en même temps que Windows... Pour le MPEG-2, c'est plus chaud : à ma connaissance, seuls les lecteurs DVD soft (genre WinDVD ou PowerDVD) ont de tels codecs. C'est payant, bien sûr.

    Citation Envoyé par sleg
    En ce qui conscerne les codecs, j'ai jamais développé avec, je vais me renseigner ...
    Il serait étonnant que tu ne puisses pas le faire avec un codec. Va faire un saut du côté des codecs DivX, pour en récupérer, et du côté du projet SourceForge "VirtualDub" pour les utiliser.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  20. #20
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par Mac LAK
    [..BCB-X..] disponible en libre téléchargement chez Borland...
    Au moins, tu auras un IDE correct, et même la possibilité d'utiliser GCC si tu le préfères (je n'en vois pas l'intérêt, mais pourquoi pas ?)
    Avoir un compilateur plus conforme qui permet d'utiliser des bibliothèques tierces C++ qui ne sont pas entièrement supportées par le compilo de Borland ?

    Très sérieusement, downloade un véritable IDE, ça aura au moins le mérite de te simplifier la vie et résoudre tes problèmes en une seule opération... ;-) Il n'est pas dans la mentalité Windows de se peler avec les makefiles et les lignes de commande pour développer...
    Il existe des outils qui pemettent d'avoir une gestion unifiée des chaines de compilation quel que soient le compilateur et la plateforme cible (scons, bjam, aap, et certainement d'autres).
    Avec eux il y a moyen de ne pas avoir à maintenir des tonnes de makefiles compliqués différents pour un code qui est censé être compilé sur plusieurs architectures différentes.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Portage appli Linux sous windows : open
    Par jeantrucmuche dans le forum Langage
    Réponses: 8
    Dernier message: 21/05/2014, 12h14
  2. Installation d'une machine virtuelle linux sous windows 7
    Par jeune ingénieure dans le forum Linux
    Réponses: 5
    Dernier message: 27/04/2011, 10h10
  3. Compilation d'une application "Linux" sous windows
    Par Gnius dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 03/09/2010, 13h51
  4. Portage d'une application MFC sous Linux/Unix
    Par farscape dans le forum MFC
    Réponses: 29
    Dernier message: 20/02/2006, 17h47
  5. Comment detecter une partition linux sous windows?
    Par ibtisss dans le forum Administration système
    Réponses: 5
    Dernier message: 09/02/2006, 11h15

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