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

Linux Discussion :

Portabilité du code C++ de Windows -> Linux ? [FAQ]


Sujet :

Linux

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Portabilité du code C++ de Windows -> Linux ?
    Bonjour,

    Je suis un peu newbee en ce qui concerne Linux, mais j'ai une bonne expérience sous Windows. Je souhaite développer une applic sur linux mais je n'ai pas d'expérience dans ce domaine. Je compte développer sur windows et porter mon code C++ sur linux. Les seuls domaines touché serons : socket, files et thread.

    Avez-vous des avis a me soumettre? Je pense que cela est relativement facile (à première vue) avec un outils genre KDevelop mais comme je l'ai déjà dis, je suis un newbee...
    Eraser570

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut !

    A priori, si tu utilises des bibliothèques "génériques" qui se retrouvent aussi bien Winmachin et Linux, tu devrais t'en sortir. A ce propos, quelles bibliothèques vas-tu utiliser (sauf si c'est secret) ?

    @ +++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre habitué
    Inscrit en
    Août 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 156
    Points : 187
    Points
    187
    Par défaut
    bin je te conseille d'utiliser cygwin (produit 'libre') comme environnement de tests sous windows, le portage sous linux sera 'immédiat'
    -- plus les choses changent...
    plus elles restent les mêmes
    --snake plissken
    pb résolus +20

  4. #4
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Euh je ne vois pas très bien en quoi cygwin répond à son besoin ! S'il veut construire une application qui puisse se compiler à la fois sous linux et sous windows, la réponse de GLDavid me semble la seule possible : utiliser une librairie graphique commune aux 2 systèmes. Il paraît que wxWindows est pas mal. Par contre, une portabilité totale est impossible, tu devras toujours adapter des éléments de code propre à chaque OS, c'est inévitable. Porteur (d'applications) c'est un vrai métier d'ailleurs.

    http://www.wxwindows.org

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  5. #5
    Membre habitué
    Inscrit en
    Août 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 156
    Points : 187
    Points
    187
    Par défaut
    euh, à moins que j'aie raté quelque chose, 'erazer' n'a pas parlé de 'graphique', il a parlé de
    C++ sur linux. Les seuls domaines touché serons : socket, files et thread.
    donc, je lui propose cygwin... ça marchera ainsi pareil sous windows et linux il peut utiliser l'IDE windows qu'il veut pour modifier ses fichiers sous windows...
    -- plus les choses changent...
    plus elles restent les mêmes
    --snake plissken
    pb résolus +20

  6. #6
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Certes mais cygwin est une solution très lourde, je le vois mal déployer cygwin dans son package windows, ou demander à l'utilisateur de le faire... Le but étant de fournir une application standalone je pense.

    Ceci dit, tu n'as pas tout à fait tort car j'avais lu le post un rien trop vite . Il ne s'agit ici que de fonctions système, donc utiliser au maximum les librairies standard C++ (iostream pour les fichiers, par contre sockets et threads je crains que l'implémentation soit un peu différente selon l'OS).

    Le portage n'est pas une science facile

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    Si tu as une bonne expérience de windows et du C++,pourquoi n'utilise pas Borland C++ Builder 6 sous windows et ensuite à la fin de ton projet, le faire passer sous linux avec la CLX???
    Moi c'est ce que je fait et c'est nikel!!
    Cordialement

  8. #8
    Membre habitué Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par arnaud_verlaine
    pourquoi n'utilise pas Borland C++ Builder 6 sous windows et ensuite à la fin de ton projet, le faire passer sous linux
    Faut en avoir les moyens.

  9. #9
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 75
    Points
    75
    Par défaut Re: Portabilité du code C++ de Windows -> Linux ?
    Citation Envoyé par eraser570
    Je suis un peu newbee en ce qui concerne Linux, mais j'ai une bonne expérience sous Windows. Je souhaite développer une applic sur linux mais je n'ai pas d'expérience dans ce domaine. Je compte développer sur windows et porter mon code C++ sur linux. Les seuls domaines touché serons : socket, files et thread.
    Bonjour,

    Je te propose de tester l'API wxWindows : http://www.wxWindows.org
    Alors cette API te permet d'ecrire une application en C++ qui est extremement portable. Il te suffit de la recompiler et elle pourra tourner sous Windows, Linux et MacOS X. Le code sera tres clean
    Tu pourras programmer sous windows a l'aide des outils que tu maitrise.
    Je te conseil de regarder par la pour un bon petit tutoriel :
    http://www.codelearn.com/cpp/icpp_wx1.html
    Tu pourras utiliser les sockets, les fichiers et les threads tres simplement :
    - sockets http://www.wxwindows.org/manuals/2.4...wxsocketclient
    - threads http://www.wxwindows.org/manuals/2.4...threadoverview
    - fichiers http://www.wxwindows.org/manuals/2.4...wxfileoverview
    C'est une api pour faire des interfaces graphique a la base mais tu peux l'utiliser sans faire d'interface graphique

    Un autre voie serait d'utiliser qt mais malheureusement la version windows est payante

    Voila

  10. #10
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    J'ai entendu parler de wxwindows pour la première fois sur ce forum, et je dois dire que le sujet m'intéresse bcp moi aussi, car C++Builder c'est bien, mais c'est très lourd et non libre. wxwindows par contre a l'air d'être vraiment bien, merci pour tous tes liens. Existe-t-il pour cette API des IDE comme C++Builder justement, qui te permettent de construire ton interface visuellement à la souris et de générer le code correspondant à la construction des fenêtres ?

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Wahou les gars ! Impressionant ! Je poste à 16h et à 22h j'ai déjà tous ce qu'il me faut !! Merci !

    En fait, le prog n'aura aucune interface. Pour les sockets, j'utilise le standard BSD sous windows, donc aucun prob (c'est la même chose sur linux). Pour les thread et les files j'ai maintenant les liens (Merci CSCMEU). Le développement sous Windows sera fais sur VS.NET 2003. Je pense simplement faire des petites classes wrapper de ces deux domaines avec un #ifdef pour l'OS.

    Pour le compilateur C++ personne ne vante les merites de KDevelop? Est-ce que c'est de la daube? J'ai connu quelcun qui développais dessus et il n'avais aucun problème.

    Par contre, dernier soucis : est-ce que la distribution ou la version pose-t-elle un problème pour la portabilité?

    Thanks 4 all !
    Eraser570

  12. #12
    Membre habitué
    Inscrit en
    Août 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 156
    Points : 187
    Points
    187
    Par défaut
    KDevelop n'est pas un compilateur c'est un IDE sous linux, il utilise le compilateur C/C++ (gcc en général) ainsi que make... qui sont fournis en standard avec linux
    -- plus les choses changent...
    plus elles restent les mêmes
    --snake plissken
    pb résolus +20

  13. #13
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut !

    Pour le compilo sous Linux, no souci, c'est gcc, le fameux gcc ! Et gcc est présent dans KDevellop donc, aucun problème. D'autre part, au niveau de la qualité, ben, je crois que gcc a fait ses preuves ! D'autres pourront en témoigner plus largement. Au niveau portabilité, je pense que cela dépend des librairies C et C++ standards que tu vas utiliser. Si vraiment, tu veux porter ton logiciel sur tous les nunux de la Terre, je ne saurais trop te recommander gcc 2.95, qui est me semble t'il le plus standard et qui te donnera un exe plus "portable".
    @ +++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  14. #14
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par ovh
    J'ai entendu de wxwindows pour la première fois sur ce forum, et je dois dire que le sujet m'intéresse bcp moi aussi, car C++Builder c'est bien, mais c'est très lourd et non libre. wxwindows par contre a l'air d'être vraiment bien, merci pour tous tes liens. Existe-t-il pour cette API des IDE comme C++Builder justement, qui te permettent de construire ton interface visuellement à la souris et de générer le code correspondant à la construction des fenêtres ?
    Il y'en a plusieurs :

    wxDesigner http://www.roebling.de/ : proprietaire et payant (29 euros la lisence etudiant) . Je n'est pas tester. C++, Python, Perl et C#
    BOA Constructor http://boa-constructor.sourceforge.net/ : libre mais pour Python Seulement. (assez difficile a utiliser)
    wxGlade http://wxglade.sourceforge.net/ : libre mais pas encore utilisable pour de gros projets. C++ et Python
    wxStudio : http://wxstudio.sourceforge.net/ pas tester encore.

    Il doit en avoir d'autre mais je ne les connais pas tous. Perso j'ai tester vite fait car je deteste ce genre d'outils qui font du code extremement crade.

  15. #15
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Un grand merci pour tes liens et tes avis, tu es une vraie mine d'or

    Citation Envoyé par CSCMEU
    Perso j'ai tester vite fait car je deteste ce genre d'outils qui font du code extremement crade.
    Bah c'est plus facile quand même, plutôt que d'encoder les coordonnées de chaque composant à la main, compiler, vérifier l'affichage, voir que ça foire, rechanger au petit bonheur la chance, recompiler pour voir ce que ça donne, c'est pas encore bon, on recommence etc. Dans un IDE au moins tu es sûr que ton interface est construite proprement puisque tu la visualises. Enfin je ne connais pas (encore) wxWindows pour l'instant, mais toi comment fais-tu toi pour construire tes interfaces graphiques en codant à la main ?

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    oui un grand merci!!
    Ben là je découvre un produit que je connaissais pas,je viens de l'installer et je pense que c'est un produit qui mérite toute notre attention....
    Bon à savoir...
    Cordialement
    PS:Salut ovh j'ai mon routeur la semaine donc je te tiendrai au courant @+

  17. #17
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'aurais une simple mini-question encore : existe-t-il une doc sur les fonctiones de bases de linux (ex: thread, files, process memory, timing et socket)?

    Parce que j'aimerais éviter le WxWindow pour des raisons de propretées. Je ne dis pas que WxWindow est de la merde, loin de là. Mais j'aimerais mieux contrôler cette partie importante du code.

    thanks!
    Eraser570

  18. #18
    Membre habitué Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par eraser570
    J'aurais une simple mini-question encore : existe-t-il une doc sur les fonctiones de bases de linux (ex: thread, files, process memory, timing et socket)?
    Bien sur ou n'importe quel bouquin qui traite de la programmation système Unix/Linux.

  19. #19
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par eraser570
    Parce que j'aimerais éviter le WxWindow pour des raisons de propretées. Je ne dis pas que WxWindow est de la merde, loin de là. Mais j'aimerais mieux contrôler cette partie importante du code.
    Il est vraie que lorsque tu ecrit une application sans GUI.
    Le melange wxWindows n'est pas du plus belle effet

    Citation Envoyé par eraser570
    J'aurais une simple mini-question encore : existe-t-il une doc sur les fonctiones de bases de linux (ex: thread, files, process memory, timing et socket)?
    C'est une question qui reviens souvent
    Les programmeurs windows ont l'habitude de n'avoir qu'une seul et unique API : l'API Windows.

    Sous Unix/Linux il y a une separations de chaque fonctionnalites du systeme d'exploitation et donc de nombreuses API.

    Bon pour faire simple tu va avoir :
    L'API POSIX pour tout ce qui est : i/o, memoire, sockets, timing et process.
    Pour les threads tu va avoir : le chois entre plusieurs libs (pth, pthreads) ou bien fork.
    Pour l'interface graphique sous X11, tu va en avoir une tripotee d'api (GTK+, Qt. wxWindows, Tk, X, Motif, Lesstif etc ...)
    Pour le son : alsa, oss, nas, esd ...

    A chaque fois tu as le choix entre 2 a N API differentes qui ont chaqu'une leurs avantages et inconvénients.

    Dans le meilleurs des monde tu pourrais ecrire un programme POSIX et le compiler et faire tourner sur n'importe quel systeme d'exploitation.

    C'est _presque_ vraie sur les systeme a base d'Unix (Linux, BSD et MacOS X, ... )
    Mais pour windows j'en doute

    Le mieux c'est de prendre un boukain sur le sujet qui t'interesse (GUI, systeme etc ...) , regarder sur google et ne pas oublier que le systeme est blainder de documentation (man, manuel et tutoriaux)

    Je vais me faire frapper dessus, mais bon, il existe aussi la libwine.
    C'est une aberation mais je sais qu'il est assez facile de "porter" un programme windows sous unix a l'aide de cette librairie.

    Voila

  20. #20
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    j'été entrain de faire des recheche pour résoudre mon problème et j'ai tombé sur votre discution qu'elle m'apparait un peu proche de mon problème que je compte sur votre aide.
    Mon problème c'est de vouloir compiler un programme développé déja en C++ sous linux que je désire le compiler sur windows, mon programe utilise des library system unix ansi qu'il comporte des csocket des thread, des ipc et des signaux.
    si vous pouvez m'aider à résoudre mon problème.

    Merci d'avance

Discussions similaires

  1. portabilité du code VBS sous windows 2000
    Par hervebaron dans le forum VBScript
    Réponses: 20
    Dernier message: 06/06/2008, 10h33
  2. Portabilité d'un serveur syslog sous windows?
    Par suya95 dans le forum Administration système
    Réponses: 1
    Dernier message: 15/11/2006, 18h33
  3. Porter un code source delphi windows à linux
    Par Coussati dans le forum Delphi
    Réponses: 4
    Dernier message: 08/10/2006, 00h58
  4. Code compilable sous Windows et Unix
    Par xzed dans le forum C
    Réponses: 9
    Dernier message: 16/05/2006, 16h06
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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