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 :

Problème de compilation C


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut Problème de compilation C
    Bonjour,

    Je viens d'installer Redhat 5 et tente de faire mes premiers pas en C

    Voici mon source (/root/essai/test.c):

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void main()
    {
        int i;
        i = 0;
    }
    Pour compiler je lance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ gcc -Wall -o test test.c
    Et voici le résultat :
    ld: cannot open ctr1.o : Aucun fichier ou répertoire de ce type
    C'est certainement basique mais cela fait un moment que je cherche après avoir laborieusement installé (complétement ?) les packages gcc-2.7.2.3-8.src.rpm et libc-5.3.12-24.i386.rm

    Merci de prendre le tps de me répondre.
    Je n'ai rien trouvé pour l'instant dans les archives/FAQ

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut et bienvenue sur les forums de developpez.com


    Pour commencer, tu ne commences pas bien l'utilisation de ton Linux car c'et tout à fait non recommandé de travailler directement sur le compte root ! Le mieux est d'utiliser un compte utilisateur classique avec moins de privilèges

    Ensuite, pour ton code, je me permet d'améliorer un petit peu pour que ca colle avec la norme du C, ce qui nous donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <stdlib.h>
     
    int main (void)
    {
       int i = 0;
     
       return EXIT_SUCCESS;
    }
    donc pour résumer mes modifications:
    1. La fonction main retourne "toujours" un int
    2. Si tu n'utilises pas les arguments en ligne de commande, il convient de mettre void entre les parenthèses au lieu de laisser vide
    3. Au minimum ajouter stdlib.h pour avoir accès à certaines fonctions primaires et quelques macro et constantes d'où l'utilisation de la constante symbolique: EXIT_SUCCESS
    4. Tu peux directement faire une déclaration + affectation: int i = 0;


    Il conviens de dire que ce programme ne sert strictement à rien mais bon, c'est pas grave, il faut bien que tu testes


    Pour la compilation en ligne de commande fait plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cc -W -Wall -pedantic test.c -o test
    Même si ce n'est pas obligatoire, il conviens en générale d'appeler le fichier source principal contenant la fonction main: main.c


    Voilà, j'espère avoir pu t'aider... pour les questions uniquement en rapport avec le C, il y'a un forum dédié à ce langage
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    Avant tout merci d'avoir pris le tps de répondre :-)

    Vu pour le compte root.

    Je voulais au départ faire un printf() après avoir fait l'include de stdio mais suite à des erreurs j'ai voulu essayer un prog + simple pour tester la compilation...

    En utilisant exactement le code tu me conseilles, les messages d'erreurs suivants apparaissent :
    In file included from /usr/include/stdlib.h:26, from test.c:1
    /usr/include/features.h:205: sysy/cdefs.h : Aucun fichier ...
    et idem pour gnu/stubs.h et sys/types.h

    J'ai qq notions de C (sous Windows) mais je démarre avec Linux...
    Ce doit doit être un pb d'installation non ?

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par kill974
    Ce doit doit être un pb d'installation non ?
    Oui apparement il te manque des headers et voir même peut-être des bibliothèques, j'aurais pû t'aider sur Ubuntu mais ta distro je la connais pas désolé.

    Regarde voir au niveau des fichiers de développement (les paquets avec "-dev" si tu as les paquets standards comme
    • libc6-dev (normalement celui là tu l'as)
    • libgcc1 (je sais pas s'il est obligatoire celui là par contre)
    • gcc-4.1 et gcc-4.1-base (normalement tu dois aussi les avoir)


    Après pour ta faciliter la vie tu peux toujours voir pour les paquets comme
    • make
    • automake
    • binutils
    • autoconf
    • autotools



    Désolé de ne pouvoir t'aider avec plus de précision, c'est déjà une erreur que je n'ai jamais eu
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    Ok merci pour ttes ces infos.
    Je vais voir voir du côté de Redhat ;-)

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    Je viens de passer à la v9.0 de Redhat.
    Rien à voir : install par assistants graphiques, sélection des packages à installer etc.

    Et mon simple programme tourne enfin.

    Avais-je oublié que Linux avait tant évolué ?

    Je pense ;-)

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

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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