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

Code::Blocks Discussion :

Projet client/serveur: faire une build windows/linux


Sujet :

Code::Blocks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut Projet client/serveur: faire une build windows/linux
    Bonjour,

    J'ai un projet client/serveur que j'ai créé sous CB. Je travaille sous Windows.
    Mon projet est configuré de la manière suivante:
    • Un build serveur qui prends des fichiers communs aux deux builds, ainsi que des fichiers propre au serveur
    • Un build client qui prends des fichiers communs aux deux builds, ainsi que des fichiers propre au client


    Jusque là, tout est parfait.
    Le soucis c'est que mon serveur je dois l'upoader sur un hébergement, qui est sous environnement Linux. Du coup, ma build Windows n'est pas top...!

    Je voudrais donc savoir comment faire une build linux avec mon CB sous Windows ?
    Ainsi mon serveur serai buildé correctement pour être uploadé, et mon client fonctionnerai sous Windows correctement. Et si vous répondez à ma question, je pourrais faire un client Windows, et un client Linux (le top).

    Infos supplémentaires:
    1. Mon projet est codé en C.
    2. Mon projet utilise deux librairies que je link à la compile. Il s'agit de pthread pour les threads, et ws2_32 pour les sockets réseau. Il me semble que cette seconde n'a besoin d'être linké que sous Windows, mais est-il grave de la linker également sous Linux ?
    3. J'ai bien pris le soin de développer un projet portable. J'ai utilisé des fonctions qui tourne sous les deux environnement, le cas échéant j'ai ajouté des commandes pré-processeur de type #ifdef WIN32 et #elif defined (linux).
    4. Je suis un utilisateur Linux novice.


    Merci !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 217
    Par défaut
    Ce que tu souhaites faire s'appelle de la cross compilation. J'ai jamais fait ça mais j'ai trouvé ce post sur ce même forum: http://www.developpez.net/forums/d48...windows-linux/

    Bonne chance!

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    J'ai suivi le processus, cela fonctionne très bien et je peux faire une build Linux sous Windows.

    Mais cela ne change rien au fait que je n'utilise toujours pas CodeBlocks ! A la base ma demande c'était dans l'idée de choisir "Build serveur Linux" dans "Build target" et que ça me ponde le serveur près à être uploadé.

    Cependant les compileurs sont installés désormais dans "C:/cygwin/opt/crosstool", est-il possible de les importer dans CB pour compiler avec ?
    Si oui, comment faire ? Je n'ai jamais rien fait de tel, j'ai toujours utilisé les compileurs de base...


    J'en profite pour faire un résumé à chaud pour le cross-compiling, si jamais quelqu'un tombe ici en cherchant la solution.


    Compiler un build Linux sous Windows

    La solution que je résume est celle-ci:
    http://metamod-p.sourceforge.net/cro...for.linux.html

    Traduite par marco3181 de Developpez.net ici:
    http://www.developpez.net/forums/d48...windows-linux/

    1. Récupérer setup.exe sur le site http://www.cygwin.com/
    2. Lancez l'installe. Vous êtes amenés au bout de quelques "Suivant" sur une longue liste de composant que vous pouvez installer.
      Déroulez "Devel" et cochez la ligne correspondant à quelque chose comme "GCC - C compiler" dans la colonne "bin". Cela va cocher tous les autres composant nécessaire pour les dépendances.
    3. Lancez le téléchargement. Personnellement chez moi, ça à été assez long (je n'ai pas mesuré, mais plus de 30min). Sachant que ça ne viens pas de ma connexion, mais la vitesse des téléchargement semblaient être bridés assez bas.
    4. Téléchargez le crosscompiler Linux pour cygwin:
      "cygwin-gcc-linux.tar.bz2" (68.2 Mb).
      md5sum: 340e91a346f5bb17e660db10e43005b8

      Ces compilers sont fait avec crosstool 0.28-rc37. Ce package contient:
      gcc-3.3.4 and gcc-2.95.3 for i386 (glibc 2.1.3) and gcc-3.3.3 for amd64
      (glibc 2.3.2).

      Note: Il y a une nouvelle version de GCC disponible avec la glibc 2.3.2:
      "cygwin-gcc-3.3.6-glibc-2.3.2-linux.tar.bz2 (i386, x86_64)".
    5. Copiez "cygwin-gcc-linux.tar.bz2" dans le répertoire d'installation de Cygwin (par défaut "c:\cygwin").
    6. Lancez la console Cygwin par le raccourcis (ou par "C:\cygwin\Cygwin.bat" par défaut) et vous tombez dans une console, tout comme sous Linux.
    7. Rendez-vous dans le répertoire principal avec la commande "cd /"
    8. Désarchivez le fichier avec la commande "tar -jxvf cygwin-gcc-linux.tar.bz2"
    9. Vous pouvez travailler comme en environnement Linux.
      Les Cross-compilers sont installés sous "/opt/crosstool". Vous pouvez les utiliser directement ou avec les commandes:
      gcc-linux, g++-linux, gcc-linux-2.95,
      g++-linux-2.95, gcc-linux-x86_64 and g++-linux-x86_64.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 217
    Par défaut
    tu peux ajouter des cible de compilation dans Code::Blocks: tu vas dans Projet->Propriétés->Cibles de génération->Ajouter
    Après t'as juste à sélectionner les fichiers à ajouter au build dans le même onglet "build target files".

    Pour le compilateur, si tu choisis Cygwin GCC comme compilateur et en réglant quelques options tu devrais réussir: Compilateur & débugger puis régler l'install pour Cygwin GCC (onglet programmes y'a répertoire de recherche et les noms des outils que tu peux changer).

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    En fait j'ai essayé de copier une config d'un compileur (celle du GCC par exemple) et de modifier les .exe dans "Toolchain executable" mais je ne suis pas arrivé à mes fins.

    Par exemple, je ne voie pas quel exe je dois mettre pour "Make program".
    Et quand je compile, il me dit que la dll "Cygwin1.dll" est absente.

    Une idée ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 217
    Par défaut
    Le programme make permet l'utilisation des makefiles, super pratique lorsqu'on utilise les makefiles (à mon avis C::B ne doit s'en servir que lorsque le projet utilise un makefile propre).

    C'est quand tu compiles ou à l'éxécution qu'il te dit ça? Car çi c'est à l'éxécution il suffit de mettre la DLL dans le même répertoire que l'appli. Sinon je sais pas, j'ai jamais utilisé Cygwin

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/09/2016, 12h46
  2. Client/Serveur : config pare-feu Windows
    Par eultartuffe dans le forum Delphi
    Réponses: 5
    Dernier message: 30/05/2007, 12h51
  3. abstraction de client /serveur dans une application
    Par Pegaz dans le forum Développement
    Réponses: 2
    Dernier message: 24/01/2007, 09h30
  4. Réponses: 1
    Dernier message: 06/07/2006, 18h56
  5. Réponses: 4
    Dernier message: 06/03/2006, 17h54

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