Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2363 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Compiler...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compiler...

n°1334581
floboss07
Posté le 29-03-2006 à 14:12:29  profilanswer
 

Voilà je me suis mis à la programmation, en commençant par le langage C.
Mais, pour commencer, je ne sais pas comment compiler un code.
Enfin, j'ai téléchargé code::blocks et C-Editor...
Mais, avec C-Editor, il me dit

Citation :

Error E2194 : could not find the file c:test.cpp


Je l'avais enregistré dans c:test.c normalement.
Je ne comprends pas ce que c'est que ce fichier .cpp...

 

Et avec code::blocks, il me dit

Citation :

Nothing to be done.
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

 

Voilà, donc je ne comprends pas où j'ai fait une erreur..
Pour info, le programme que je veux compiler c'est tout simplement :

Code :
  1. #include <stdio.h>
  2. /* This program illustrates the use of the printf function */
  3. //Ce programme illustre le fonctionnement de la fonction printf.
  4. int main(int argc,char* argv[]){
  5.   int i;
  6.   int octal=0123;
  7.   int hex=0xFF32;
  8.   unsigned char c='1',d='é';
  9.   float f=0.5,g=1E10;
  10.   for (i=0;i<argc;i++){
  11.     printf("Argument %i = %sn",i,argv[i]);
  12.   }
  13.   while (0) ;
  14.   do ; while (0);
  15. }
 

ou encore :

 
Code :
  1. #include <stdio.h>
  2. main ()
  3. {
  4.     printf("bonjour, maîtren" )
  5. }
 

Merci

mood
Publicité
Posté le 29-03-2006 à 14:12:29  profilanswer
 

n°1334592
nargy
Posté le 29-03-2006 à 14:29:01  profilanswer
 

Ton compilo, il cherche un fichier nommé test.cpp (C++) au lieu de test.c (C).
 
Si tu ne cherche pas forcément à faire du C pur tu peut toujours renommer ton test.c en test.cpp.
 
Sinon, tu devra trouver une option de CEditor pour refaire le makefile (je connais pas CEditor, cherche une option ``rebuild``).

n°1334596
Elmoricq
Modérateur
Posté le 29-03-2006 à 14:31:17  profilanswer
 

nargy a écrit :

Si tu ne cherche pas forcément à faire du C pur tu peut toujours renommer ton test.c en test.cpp.


 
Non.
 
Soit on fait du C, soit on fait du C++.  
Mais le "C qui compile en C++ avec des bouts des deux langages dedans" ça devrait être passible de prison.
 
Concernant le problème avec code::blocks, je n'en sais rien en revanche, je ne connais pas cet IDE.

n°1334600
kadreg
profil: Utilisateur
Posté le 29-03-2006 à 14:36:49  profilanswer
 

Et il est fortement déconseillé d'appeler un programme test, surtout sous unix :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1334604
floboss07
Posté le 29-03-2006 à 14:42:50  profilanswer
 

Bein, le probleme, c'est qu'il cré bien un fichier du nom que je lui ai donné, mais sans extansion! Donc, c'est bisard, je fais quoi je le renomme en lui ajoutant l'extansion .c ?
Et puis même, je le lance avec quoi ce fichier .c ? Pour l'executer..
Et pour finir, il n'y a pas de réelles options dan CEditor, à part sur l'apparence et le chemin du compilateur (bcc32, externe à CEditor)...
 
Mais c'est surtout code::blocks que je voudrais utiliser (étant donné les commentaires que j'en ai lu), donc... Si tu pouvais m'aider là dessus plutot... ^^
 
EDIT : je répondais à nargy là!
 
et Elmoricq, qu'utilises-tu toi? Pour que j'essai..
 
Quant à kadreg, j'suis pas sous unix, mais bon je retient quand même ^^


Message édité par floboss07 le 29-03-2006 à 14:47:10
n°1334608
Elmoricq
Modérateur
Posté le 29-03-2006 à 14:47:00  profilanswer
 

Ton source devrait porter l'extension ".c"
 
Après tu le passes à la compilation, puis à l'édition de lien. Mais de ton côté ça devrait être transparent, et tu ne devrais voir qu'une seule étape, la "compilation".
 
En sortira un fichier ".exe", que tu pourras exécuter à ta guise.

n°1334609
floboss07
Posté le 29-03-2006 à 14:49:45  profilanswer
 

Merci Elmoricq, mais pourrais-tu me dire les étapes avec le programme que tu utilise pour voir?

n°1334623
nargy
Posté le 29-03-2006 à 15:08:48  profilanswer
 

fichiers sources:
.h -> contenant les définitions et déclarations (prototypes)
test.h:


/* include ce fichier une seule fois */
#ifndef TEST_H
#define TEST_H
/* déclarer la fonction test */
void test();
#endif


 
.c -> contenant le code et les initialisations
test.c:


/* inclure les définitions */
#include "test.h"
#include <stdio.h>
/* code de la fonction test */
void test()
{
  printf("bonjour, maître\n" );
}
/* la fonction main n est jamais déclarée */
int main()
{
  test(); return 0;
}


 
fichiers objets, obtenu après compilation:
.o -> compilé à partir d un .c
typiquement: cc -c test.c
 
librairies, obtenu après ``édition des liens``:
.a -> librairie statique contenant plusieurs .o
.dll/.so -> librairie dynamique contenant plusieurs .o
typiquement: cc -o test.a test.o
 
fichiers executable, obtenu après ``édition des liens`` de plusieurs .o, .a, .dll...:
.exe -> executable
typiquement: cc -o test.exe test.o
 
Les librairies dynamiques .dll sont chargées au démarrage du programme (doivent être installées sur le système), les librairies statiques .a sont inclues dans le .exe (prends plus de place lorsque la librairie est utilisé par plusieurs programmes).
 
Un makefile sert à vérifier que les dépendances entre les différents fichier inclus soit mis à jour et que les fichiers objets soient recompilés lorsque un fichier source change.
 
makefile:


test.exe: test.o # test.exe dépends de test.o
  cc -o test.exe test.o # comment construire test.exe à partir de test.o
test.o: test.c test.h # test.o dépends de test.c et test.h
  cc -c test.c # comment construire test.o


typiquement: make


Message édité par nargy le 29-03-2006 à 15:26:45
n°1334629
nargy
Posté le 29-03-2006 à 15:18:12  profilanswer
 

édité plusieurs fois, ça marche...

n°1334631
skelter
Posté le 29-03-2006 à 15:19:06  profilanswer
 

Citation :

typiquement: ld -o test.a test.o


 
plutot "ar s" ou "ranlib",
 

Citation :

Les librairies dynamiques .dll sont chargées au démarrage du programme


 
pas forcement, ca peut etre fait au cours de l'execution (voir dlopen)

mood
Publicité
Posté le 29-03-2006 à 15:19:06  profilanswer
 

n°1334635
nargy
Posté le 29-03-2006 à 15:25:25  profilanswer
 

attends j ai viré les ld, ça marche pas chez moi, y a que cc qui marche.

n°1334637
nargy
Posté le 29-03-2006 à 15:28:08  profilanswer
 

ok avec du copier/coller du code ci dessus ça marche sous linux. reste sous windows à avoir un compilo appelé ``cc``.

n°1334641
skelter
Posté le 29-03-2006 à 15:31:54  profilanswer
 

dans ton exemple tu devrait faire un test.c, avec le code de la fonction test, et le main dans main.c
comme ca tu compiler séparement le code de test et le .h servira  à quelque chose

n°1334647
nargy
Posté le 29-03-2006 à 15:37:26  profilanswer
 

ouais... et puis utiliser une ptite librairie graphique, ajouter du son avec une lib TextToSpeech... :D

n°1334648
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-03-2006 à 15:43:55  profilanswer
 

floboss07 a écrit :

Voilà je me suis mis à la programmation, en commençant par le langage C.
Mais, pour commencer, je ne sais pas comment compiler un code.
Enfin, j'ai téléchargé code::blocks et C-Editor...


Déjà, je te conseille de t'en tenir à un seul IDE pour le moment. Je connais un peu Code:Blocks mais pas du tout C-Editor. Quel est ton système ?

Citation :


Et avec code::blocks, il me dit

Citation :

Nothing to be done.
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings




Pour forcer la recompilation :  
Bouton Rebuild  
ou  
Build/Rebuild
ou Ctrl-F11

Citation :


Voilà, donc je ne comprends pas où j'ai fait une erreur..
Pour info, le programme que je veux compiler c'est tout simplement :


C'est légèrement atroce comme code...

Code :
  1. #include <stdio.h>
  2. int main(int argc, char* argv[])
  3. {
  4.    int i;
  5.    for (i = 0;i < argc;i++)
  6.    {
  7.       printf("Argument %i = %s\n", i, argv[i]);
  8.    }
  9.    return 0;
  10. }


Message édité par Emmanuel Delahaye le 29-03-2006 à 15:48:23

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1334653
floboss07
Posté le 29-03-2006 à 15:44:54  profilanswer
 

Euh merci.. Mais... Je vous dit quand même, je débute completement en C, donc là ça c'était tiré de "Le langage C, Norme ANSI" de K&R! Si vous l'avez, vous verrez en page 6 qu'ils parlent juste de créer un fichier contenant  

Code :
  1. #include <stdio.h>
  2. main ()
  3. {
  4.          printf("bonjour, maîtren" );
  5. }


et de le compiler (dans leur exemple, il utilisent UNIX, donc tapent la commande cc nomdufichier.c ce qui cré un exécutable appelé a.out.
Donc, partant du même principe, sans faire + compliqué, comment créer un executable à partir de ce code?
 
Merci :)

n°1334659
floboss07
Posté le 29-03-2006 à 15:47:09  profilanswer
 

Réponse à Emmanuel D elahaye :
 
J'utilise Windows XP, et j'utiliserais l'IDE que vous me conseillerais lol ^^
 
Quant au code, il est tiré de CEditor, en code d'exemple de ce programme...

n°1334660
nargy
Posté le 29-03-2006 à 15:47:43  profilanswer
 

ben comme ils disent:
cc test.c
ça te crée un executable a.out

n°1334662
floboss07
Posté le 29-03-2006 à 15:49:29  profilanswer
 

[quote="'Floboss07"]
[...]
J'utilise Windows XP
[...]
[/quote]

n°1334669
nargy
Posté le 29-03-2006 à 15:59:28  profilanswer
 

c est quoi ton compilo?
code::blocks supporte:
    * GCC (MingW / Linux GCC)
    * MSVC++
    * Digital Mars
    * Borland C++ 5.5
    * Open Watcom
sinon vire le fichier ``makefile`` ou ``Makefile`` et recommence la compilation.

n°1334679
skelter
Posté le 29-03-2006 à 16:04:54  profilanswer
 

nargy a écrit :

ouais... et puis utiliser une ptite librairie graphique, ajouter du son avec une lib TextToSpeech... :D


 
dans ton exemple le .h il sert à rien, sauf si tu compile test séparément, c'est tout :)

n°1334683
nargy
Posté le 29-03-2006 à 16:07:49  profilanswer
 

> dans ton exemple le .h il sert à rien, sauf si tu compile test séparément, c'est tout :)
 
C ce que je fait.. pour l exemple seulement.
 
Floboss07 cherche le nom de son compilo, sous winXP ça doit sûrement être ``vcc``?

n°1334688
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-03-2006 à 16:14:08  profilanswer
 

nargy a écrit :

Floboss07 cherche le nom de son compilo, sous winXP ça doit sûrement être ``vcc``?


Bêtises...
 
Borland : bcc
Mingw : gcc


Message édité par Emmanuel Delahaye le 29-03-2006 à 16:14:25

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1334690
nargy
Posté le 29-03-2006 à 16:15:17  profilanswer
 
n°1334701
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-03-2006 à 16:19:45  profilanswer
 


Le monsieur, il a parlé de Borland et de Code::Blocks...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1334709
floboss07
Posté le 29-03-2006 à 16:26:34  profilanswer
 

J'ai borland et GCC (inclu dans l'instal de code::blocks)
 
EDIT : et à l'instal de code::blocks, j'ai choisi GCC en "par défault"..


Message édité par floboss07 le 29-03-2006 à 16:27:38
n°1334723
nargy
Posté le 29-03-2006 à 16:38:07  profilanswer
 

gcc test.c

n°1334894
floboss07
Posté le 29-03-2006 à 19:58:38  profilanswer
 

Tu peux faire une phrase please? Parce que là je ne comprends pas ce que tu veux dire lol...

n°1334947
nargy
Posté le 29-03-2006 à 20:47:42  profilanswer
 

Pour tester ton programme, tu ouvre une fenêtre MSDOS, tu te mets dans le bon répertoire et tu tapes (Gnu Gcc):
gcc test.c
ou (BorlandC++):
bcc test.c
 
Je suppose que code::blocks peut faire ça automatiquement, mais je ne l ai jamais utilisé...

n°1334968
floboss07
Posté le 29-03-2006 à 21:13:05  profilanswer
 

Niquel, merci, je vais donc continuer mon apprentissage...
Ca ne m'étonnerais pas que je vous repose bientot une autre question ^^ :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Compiler...

 

Sujets relatifs
jpeg Aidez moi a compiler cette libJe n'arrive pas à compiler
[Résolu] Compiler un programme utilisant Berkeley DBcompiler du C dans matlab
Compiler Latek à partir de JAVAcompiler un fichier excel
[Résolu] compiler wxmacComment compiler un fichier?
Appel à une âme charitable pour compiler un PETIT projet CCodes source VB comment compiler ?
Plus de sujets relatifs à : Compiler...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)