Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OCaml] Problème avec le compilateur natif

'as' n'est pas une commande

    29 novembre 2005 à 19:51:27

    Bonjour, je me suis mit à programmer en Ocaml sous windows seulement j'ai un peit problème. Alors que le compilteur en code-octet fonctionne parfaitement celui créant des exécutables en natif me renvoi à chaque fois un message d'erreur :

    'as' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande.
    Assembler error, input left in file C:\[...]\camlasff0fb9.s


    Si quelqun connait la solution. Je suppose que le problème vient de l'assembleur qui n'est pas correctement reconnu.
    • Partager sur Facebook
    • Partager sur Twitter
      29 novembre 2005 à 20:42:09

      En général, le compilateur natif ne fonctionne pas au mieux de sa forme sous windows parce qu'il a besoin d'un certain nombres de choses louches, comme par exemple mingw : quand tu télécharges Ocaml, tu as une version windows mingw et une autre (pour visual C++ je crois, mais je ne suis pas sur). Si tu as pris la version mingw, assure toi d'avoir aussi en même temps installé Mingw.

      De toute facon :
      - quand on code, le mieux c'est d'interpreter directement le fichier au lieu de le compiler (ocaml tonfichier.ml) : c'est plus rapide (sur 24 modifications du code consécutives on gagne plus de temps qu'on ne le croit)
      - si tu veux compiler, le compilateur bytecode est tout à fait honnête (même si le natif est plus performant)

      Dans tout les cas, le compilateur natif n'as pas grand intérêt pour un développeur : il peut servir quand tu as un gros projet dont les performances sont cruciales (ca arrive) mais en général le PC cible dans c'est cas là c'est plutot un serveur sous Unix ou autres.
      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2005 à 20:55:51

        Donc alors attend moi j'ai telecharger Dev-cpp qui inclue donc l'environnement MinGw, seulement il doit y'avoir conflit au niveau des repertoires tu sais comment je peux changer ca ? Autrement j'ai aussi vu qu'en faisant ocamlc -custom script.ml ca pouvait integrer l'interpretateur dans l'executable, ce qui me semble un bon compromis seulement cette fois il y a un probleme avec gcc (toujours un probleme de repertoire je suppose)

        EDIT : sous linux (ubuntu) y'a aucun probleme comme quoi
        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2005 à 21:27:09

          Un compromis entre quoi et quoi ?

          De toute facon le compilateur natif sert à rien : tu compiles généralement pas, tu interprètes tout, et quand tu veux un vrai executable tu prends ocamlc et c'est bon.

          De plus, dans le cours france-ioi, tu peux soumettre tes codes directement au serveur qui se charge de les compiler lui-même, donc t'as même pas forcément besoin d'ocaml en dehors de la coloration syntaxique.

          PS : juste une petite question insignifiante : ca rime à quoi d'avoir un avatar Ubuntu et de coder en Ocaml sous windows ?
          • Partager sur Facebook
          • Partager sur Twitter
            29 novembre 2005 à 21:58:49

            d'un autre côté si je peux me permettre une petite remarque, XEmacs roxxorise pour coder en ocaml, bien plus pratique qu'objective caml selon moi pour l'interprétation (après la compil c'est un autre problème).

            voila, j'arrete de dévier :)
            • Partager sur Facebook
            • Partager sur Twitter
              30 novembre 2005 à 0:17:03

              Et bien tu codes avec (x)emacs, et après tu fais 'ocaml toncode.ml' : ca te l'interprète sans passer par la boucle d'interaction : en gros c'est comme si tu faisais 'ocamlc toncode.ml -o run; run.ml' mais ca crée pas de fichiers temporaires ou même d'éxécutables (mieux quand t'as plusieurs sources dans un meme repertoire).
              • Partager sur Facebook
              • Partager sur Twitter
                30 novembre 2005 à 9:34:23

                Citation : bluestorm

                PS : juste une petite question insignifiante : ca rime à quoi d'avoir un avatar Ubuntu et de coder en Ocaml sous windows ?



                Tout simplement parce que chez moi j'ai deux ordinateurs, un sous linux et un sous Windows. C'est bien dommage mais pour le moment il y'a certains logiciels que j'utilise sous windows et que je ne peux pas remplacer sous linux mais t'en fait pas ca viendra (quand wine sera mieux et quand mon pere sera plus convaincu ;) ). Autrement pour revenir a ta question mon but c'est d'ecrire des logiciels multiplateformes donc si tu as encore bien remarquer dans ma citation j'utilise wxWidgets comme GUI parce qu'il est multiplateforme.
                • Partager sur Facebook
                • Partager sur Twitter
                  30 novembre 2005 à 19:48:39

                  Certains logiciels peut-etre, mais ocaml ?
                  Ocaml sous linux, c'est comme les maths en maillot de bain : ca roxxe.

                  Pour revenir à ma question si tu veux, je te rappelerais que le compilateur natif ne fait pas des executables portables, c'est le compilateur bytecode (ocamlc) qui le fait.

                  De plus l'option '-custom' n'ajoute rien à la portabilité ou non d'un logiciel.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 novembre 2005 à 21:04:46

                    Je savais que le compilateur natif ne faisait pas du code portable, je prévoyais simplement de compiler le même programme à la fois sous windows et sous linux pour ensuite pouvoir les utiliser au maximum de leur performance sous les deux systèmes. (la source est la même quelque soit le système je suppose ;) )
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [OCaml] Problème avec le compilateur natif

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown