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

Caml Discussion :

[OCaml]Compiler en code natif: problème


Sujet :

Caml

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut [OCaml]Compiler en code natif: problème
    Bonjour,
    J'ai voulu compiler un programme en code natif avec ocamlopt.
    Le fichier source était tout simple et s'appelait test.ml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_string("Bonjour !");;
    Dans le console, je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ocamlopt -o test.exe test.ml
    Et ça m'affiche ceci :
    Nom de commande ou de fichier incorrect
    File "caml_startup", line1, characters 0-1:
    Error: I/O error: as -o "C:\DOCUME~1\Standard\LOCALS~1\Temp\camlstartup23319f.o"
    "C:\DOCUME~1\Standard\LOCALS~1\Temp\camlstartuppcecbb9.s": Ivalid argument
    Y-a-t-il un moyen de trouver d'où vient cette erreur?
    Ou bien un autre moyen de compiler en code natif ?

    Merci !

  2. #2
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Pour commencer, enlève les parenthèses autour des arguments, et remplace-les par des espaces.

    Ensuite, ne nomme jamais un programme test. Je ne pense pas que la source du problème soit celle-là, car tu es sur Windows ; sous Unix, la commande test existe déjà.

    Deuxièmement, as-tu installé un compilateur C ? du genre Visual C++ ou un autre si tu es sur MinGW ou Cygwin...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Bonjour,
    J'ai ocaml pour MinGW, et j'ai MinGW .

    Ensuite, j'ai créé un autre fichier source qui contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_string "Bonjour !" ;;
    et qui s'appelle bonjour.ml .

    Ensuite, quand je veux compiler, ça me met cette erreurs :
    Nom de commande ou de fichier incorrect
    File "caml_startup", line 1, characters 0-1:
    Error I/O error: as -o "C:\DOCUME~1\Standard\LOCALS~1\Temp\camlstartupfdcb32.o"
    "C:\DOCUME~1\Standard\LOCALS~1\Temp\camlstartupdcff91.s": Invalid argument
    Voila ...
    Joyeux noël !

  4. #4
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Essaye avec...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    print_endline "Bonjour !"
    ;;
    T'as fait comment pour installer OCaml ? Tu n'aurais pas "écrasé" une ancienne installation, c'est-à-dire installer sans avoir désinstallé avant ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Bonjour,
    Le résultat est le même, l'erreur ne change pas avec le bout de code que tu m'as donné .

    Non, je n'ai pas écrasé d'anciennes versions de OCaml.
    Pour installer OCaml, j'ai utilisé l'installeur pour windows, et je crois que j'ai tout laissé ce qu'il y avait par défaut.

  6. #6
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Je n'ai jamais rencontré cette erreur avec MinGW 5.1.3, donc ça va pas être facile à diagnostiquer.
    J'ai ocaml pour MinGW, et j'ai MinGW.
    C'est l'installation que je recommande.
    Testes les outils MinGW à l'aide de la ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gcc --help
    as --help
    ld --help
    J'entrevois trois possibilités :
    1. le répertoire "C:\DOCUME~1\Standard\LOCALS~1\Temp" n'existe pas
    2. tu es loggué sur un compte qui ne te donne pas accès au répertoire "C:\Program Files" et/ou au répertoire "C:\DOCUME~1\Standard\LOCALS~1\Temp"
    3. si ça n'est ni l'un ni l'autre alors désinstalle MinGW et réinstalle une version plus ancienne (MinGW 5.1.3) ou avec un autre installateur

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Bonjour,
    Quand je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gcc --help
    as --help
    ld --help
    il y a une liste de commande qui s'affiche, et ça ne signale aucune erreur.
    Et aussi, je n'ai pas MinGW 5.1.3 mais MinGW 4.1.0.

    Je suis aller voir, et il me semble que
    "C:\DOCUME~1\Standard\LOCALS~1\Temp"
    n'existe pas...

  8. #8
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Je suis aller voir, et il me semble que
    "C:\DOCUME~1\Standard\LOCALS~1\Temp"
    n'existe pas...
    Tu n'es pas un habitué des comptes utilisateurs et des répertoires Windows, n'est-ce-pas ?
    Si le répertoire existe c'est sous un autre nom (oui je sais c'est débile), normalement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Documents and Settings\Standard\Local Settings\Temp
    Standard est le nom d'un compte utilisateur.
    Ton nom d'utilisateur à toi est affiché en haut du menu démarrer.

    L'erreur n'a rien probablement rien à voir avec Objective Caml :
    • il faut installer MingGW pour tous les utilisateurs
    • dans le cas contraire il faut être loggué avec le compte utilisateur qui a permis l'installation

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Bonjour,
    Nous n'avons qu'un seul compte utilisateur : c'est Standard.
    Je pense aussi que MinGW est installé pour tous les utilisateurs.

    Aussi, le dossier Local Settings était caché, je ne le trouvait pas ....

  10. #10
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Essaye d'installer la version de MinGW recommandée sur le site OCaml. Si ta version est trop vieille, il se peut que tu aies des problèmes.

    As-tu bien suivi les procédures d'installation que l'on trouve sur les sites de référence, OCaml et MinGW ?

    Malheureusement, je n'ai jamais utilisé MinGW, donc je ne peux pas t'aider plus ou mieux, pour l'instant.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Il y a quelque chose que je ne comprends pas:
    sur cette page du site d'ocaml, ils disent de ne pas télécharger MinGW sur www.mingw.org sur le site d'OCaml, ils disent :
    Do *not* install the Mingw/MSYS development tools from www.mingw.org:
    these are not compatible with this Caml port
    Je crois qu'ils expliquent qu'ils ne sont pas compatible avec OCaml.

    Dans ce cas, où doit-on télécharger MinWG ?

  12. #12
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Moi j'ai utilisé deux versions de MinGW, 4.1.0 (sous Windows98se) et 5.1.3 (sous XP-pro), mais en fait j'ai comme le mauvais présentiment selon lequel tu serais en fait sous Vista.

    Tout ce que je peux faire c'est:
    1. t'encourager à réinstaller MinGW 5.1.4
    2. tester un helloworld.c histoire de vérifier que MinGW est bien installé

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Non, je ne suis pas sou Vista !
    Je suis sou Windows 2000.

    Par contre, à l'installation de MinGW 5.1.4 , ça me met cette erreur :
    Error : failure reading from tarball.

  14. #14
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Ne lis même pas la doc de l'INRIA, ça ne sert à rien, ceux qui l'écrivent n'utilisent pas Windows, et ils ont bien raison vu que même avec MinGW/Cygwin le pingouin n'arrive pas à passer par la fenêtre.

    Il te reste encore à essayer MinGW 5.1.3.
    En cas d'échec tu peux te rabattre sur Cygwin, ça marche mieux pour certains.
    Et même si ça marche ne compte pas trop utiliser LablGL & LablGTK
    Mais pour des applications console c'est ok.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    J'ai lancé l'installation de MinGW 5.1.3 , mais à un moment, ça me dit :
    Your connection appears to have dropped out. Reconnect your dial up or check your IE proxy settings
    Le début, il me semble que ça dit que ma connection marche plus, où quelque chose comme ça, mais après, je ne comprends pas ...

  16. #16
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Essaye Cygwin, ou si tu trouves une version de Visual C++, tu peux même installer la version Windows classique (pour faire de la compilation native).

    En effet, si tu ne cherches pas à faire de la compilation native, la version Win32 suffit.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    J'avais déjà essayé d'installer la version express de Visual C++ , ça ne marchait pas

    Avec Cygwin, on produit du code natif ?

  18. #18
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Le début, il me semble que ça dit que ma connection marche plus
    L'installateur MinGW est un peu particulier: il faut une connexion internet active pour qu'il télécharge les logiciels à installer, tu ne peux pas faire l'installation off-line.

    Avec Cygwin, on produit du code natif ?
    Oui, mais l'inconvénient d'un exécutable natif produit par Cygwin c'est qu'il necéssite une dll alors qu'un exécutable natif produit par MinGW est complètement autonome.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    C'est bizarre, je suis tout le temps connecté à internet, et quand j'ai essayé d'installer MinGW, j'étais conencté normalement ...

  20. #20
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 28
    Par défaut
    je ne m'y connais pas trop (je ne vois pas ce qu'est le mode natif), mais quand je compile je lance dans un fichier .bat :

    ocamlc -c fichier.exe fichier.ml

    et je récupère le fichier.exe, fichier.cmi et fichier.cmo

Discussions similaires

  1. compiler en code natif
    Par vb159753 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 17/02/2011, 22h03
  2. Problème pour compiler le code source de Derby
    Par subzero82 dans le forum Général Java
    Réponses: 1
    Dernier message: 11/03/2009, 10h33
  3. Réponses: 4
    Dernier message: 01/06/2008, 18h23
  4. Réponses: 3
    Dernier message: 27/04/2007, 17h30
  5. problème de compilation de code c sur linux
    Par bejaouijamil dans le forum C
    Réponses: 11
    Dernier message: 10/01/2007, 15h36

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