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 :

Equivalent de libcrafter sur Windows


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 12
    Par défaut Equivalent de libcrafter sur Windows
    Bonjour,

    Je cherche un équivalent de libcrafter mais sur windows, enfin une bibliothèque qui soit aussi simple a utiliser et qui propose a peux près les même fonctionnalité.
    Ou peux être si cela n'existe pas, serait-il alors possible de compiler mon programme sur linux et de faire une quelconque opération pour que celui-ci soit exécutable sur Windows sans avoir besoin de passer par un logiciel tiers.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,
    Citation Envoyé par chaa13 Voir le message
    Bonjour,

    Je cherche un équivalent de libcrafter mais sur windows, enfin une bibliothèque qui soit aussi simple a utiliser et qui propose a peux près les même fonctionnalité.
    Je ne connais absolument pas libcrafter, mais est ce que boost::asio ne correspondrait pas en partie à ta demande
    Ou peux être si cela n'existe pas, serait-il alors possible de compiler mon programme sur linux et de faire une quelconque opération pour que celui-ci soit exécutable sur Windows sans avoir besoin de passer par un logiciel tiers.
    Lancer sous windows un exécutable généré pour être exécuté sous linux ou inversement est totalement impossible.

    Par contre, il est possible de faire ce que l'on appelle une "compilation croisée", qui consiste à générer l'exécutable pour une cible différente que le système sur lequel la compilation se fait.

    Le meilleur moyen pour obtenir ce genre de résultat est, selon moi, d'utiliser MinGW ou MinGW-w64. Il s'agit de projets dont le but est de fournir l'ensemble de la chaine de compilation composée de Gcc, binutils, gdb et autres outils intéressants (comme pthreads) dans une version susceptible de créer des exécutables pour windows (et / ou susceptible de fonctionner sous windows).

    Il faut cependant être conscient du faire que les fichiers d'en-tête "non standard" (comprends: ceux qui ne sont cités ni dans la norme C++ ni dans la norme C ) peuvent régulièrement poser problème et qu'il y a, même dans les fichiers standard, quelques différences car linux est un système posix et que windows ne respecte pas (entièrement) cette norme.

    On peut, par exemple, citer la fonctionnalité fork() qui est disponible sur les systèmes posix mais qui n'est pas disponible telle quelle sous windows et dont le comportement réel est d'ailleurs assez difficile à simuler sous windows.

    Je ne peux donc pas t'assurer à 100 % qu'il sera ne serait ce que possible de compiler libcrafter vu que je n'ai jamais essayé de le faire!

    Si tu arrives à compiler libcrafter pour windows et si ton programme n'utilise pas trop de fonctionnalités posix, tu devrais arriver "sans trop de difficultés" à compiler ton programme pour qu'il soit utilisable sous windows.

    Le meilleur conseil que je peux donc te donner, c'est :
    • Respecte au mieux la norme C++ : ce qui s'écarte de la norme ISO (en particulier la norme posix) augmente le risque d'échec lors de la tentative de compilation sous windows
    • Use et abuse de boost et de ses possibilités : il s'agit d'un framework fournissant de nombreuses fonctionnalités portables en remplacement de fonctionnalités qui posent souvent des problèmes de compatibilité.
    • Essayes de compiler avec MinGW (MinGW-w64) : ca passe, ou ca casse, mais tu seras fixé


    Quelques liens utiles:
    1. MinGW (Minimalist Gnu for Windows): Essentiellement utile pour disposer de MSYS (Minimalist SH system)
    2. MinGW-w64 : fork du premier qui tend à fournir les version 32bits, 64bits et multilib de MinGW, alors que MinGW reste "désepérément" 32bits uniquement.
    3. Ici même : tu trouveras plusieurs tutoriaux et discussions portant sur la possibilité de mettre en place des outils de compilation croisée
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 12
    Par défaut
    Salut,
    Merci pour t'a réponse Je pense que je vais d'abord essayer la compilation croisé et si ça ne fonctionne pas je me tournerais vers boost::asio (je pensais vraiment que ce framework était difficile a utiliser).
    J'ai essayer avec mingw32 qui me donne une commande simple et qui marche tant que je n'ai pas besoin de linker une bibliothèque, j'ai juste a faire :
    i586-mingw32msvc-g++ test.cpp -o test.exe
    , le problème intervient lorsque que je veux linker une bibliotheque j'ajoute par exemple -lcrafter (cette ajout marche normalement avec g++) mais là on dirait qu'il n'a pas trouvé la lib, il m'affiche le tas d'erreur normal quand on as oublier de linker. sachant que libracfter ne contient aucun .o et .a je ne sais pas trop comment faire. Ce qui est étrange c'est que je n'ai aucun probleme quand je fais une compilation normale avec g++, aucun problème de linkage !

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Attention!!!

    Je n'ai peut être pas été assez clair sur un point : il n'y a strictement aucune compatibilité entre les binaires (qu'il s'agisse de bibliothèque ou d'exécutables) générés pour une utilisation sous windows et les binaires pour générés pour une utilisation sous linux!!!

    Autrement dit, si tu as la bibliothèque libcraft compilée pour être utilisée sous linux sur ton système, tu ne peux pas utiliser cette version pour compiler une application qui sera utilisée sous windows : tu dois commencer par créer une version compatible avec windows de libcraft .

    Du coup, soit tu utilises la compilation croisée pour générer cette version particulière de libcraft depuis ton système linux, soit tu devras sans doute utiliser MSYS sous windows pour profiter du script configure et être en mesure de la compiler dans une version compatible avec windows.

    Si tu y arrives (comme je n'ai jamais essayé, je ne sais pas si tu y arriveras ) tu devras veiller à ce que l'édition des liens se fasse avec cette version particulière de libcraft lorsque tu voudras compiler la version "windows" de ton application
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 12
    Par défaut
    Mince, oui merci c'est vrai que c'était un peux débile de ma part de mettre -lcrafter sans vraiment réfléchir.
    Comme y'a pas mal de .cpp et .h dans le dossier de libcrafter je suppose que ça va pas être simple, enfin je sais pas trop quel fichier prendre pour mon
    g++ -c <comment savoir quel cpp prendre>
    Et en plus si je fais ça, ça va me le compiler en .a pour linux, peux etre avec mingw32 j'arriverais a le compiler pour windows et a ce moment je pourrais passer sur windows ! Mais si je prend ma commande de depart
    i586-mingw32msvc-g++ test.cpp -o test.exe
    dans l'option -l je serais obliger d'indiquer les bibliothèque compiler pour linux !
    En gros la meilleur solution serait de compiler la lib pour windows et ensuite de l'utiliser su windows (mais bon comme dis precedement je sais pas trop quel cpp indiquer )?
    Hm, sinon j'ai un peux vu Boost asio, et ça a l'aire plutôt dure si je veux faire mes propres paquet (enfin c'est vrai que si y'a plus que ça comme solution je serais obliger de m'y mettre), j'ai beau chercher y'a vraiment aucune bibliothèque qui soit a peux pers pareil de scapy ou crafter.
    Merci d'avance

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Tu n'as décidément pas compris ce que je voulais dire

    L'idée n'est pas de commencer à rajouter les fichiers de libcrafter un à un dans ton projet, l'idée est de commencer par compiler libcrafter dans une version compatible pour windows.

    Ayant un tout petit peu regardé ce qu'il en est:
    1. tu télécharge l'archive contenant les source (crafter-0.2.tar.gz)
    2. tu extrait les fichiers de l'archive ( tar -vxzf crafter-0.2.tar.gz )
    3. tu rentre dans le dossier créé (cd crafter-0.2)
    4. tu lances le script configure: configure --build=<la cible de destination>(*) --prefix=<le dossier dans lequel tu veux l'installer> )
    5. si tout se passe bien, tu lances la compilation (make)
    6. si la compilation réussi tu lance l'installation (make install)
    7. tu utilises la biblothèque de manière classique (L<chemin vers la lib> -lcraft )

    (*)par exemple x86-w64-mingw32 si tu veux compiler en mode 32bits ou x86_64-w64-mingw32 si tu veux compiler en mode 64bits.

    !!! tu dois disposer du compilateur adéquat pour générer le binaire pour la cible indiquée!!!

    Si tu es sous linux, tu peux faire directement tout cela dans ton dossier perso

    Si tu es sous windows, tu devras faire cela en utilisant MSYS
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 12
    Par défaut
    Salut,
    Je n’utilise pas souvent Linux, désolé si je suis lourd et pas compréhensif
    J'aurais accès a mon linux demain, je vous tiens au courant
    En attendant je peux peux surement essayer avec MSYS.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 12
    Par défaut
    Salut,
    Bon j'ai installer la lib, mais j'ai des problème pour la compilation en général. Je pense que je vais pas vous prendre votre temps plus longtemps, je vais user et re-user des raw socket sur boost et je pense que ça sera au final plus simple que ce qui me paraissais plus simple avant
    En tout cas merci beaucoup ^^

Discussions similaires

  1. Equivalent commande Host Linux sur Windows
    Par shadokk dans le forum Windows XP
    Réponses: 6
    Dernier message: 05/01/2011, 14h15
  2. pb d'installation d'Oracle 9 sur windows 2000
    Par condor dans le forum Oracle
    Réponses: 1
    Dernier message: 14/12/2006, 11h40
  3. pb d'installation d'Oracle 9 sur windows 2000
    Par condor dans le forum Oracle
    Réponses: 1
    Dernier message: 14/06/2006, 14h28
  4. phpPgAdmin sur windows
    Par krimson dans le forum PostgreSQL
    Réponses: 18
    Dernier message: 14/04/2004, 17h56
  5. [Utilisation Postgresql sur windows]
    Par xhercule dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/01/2004, 18h36

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