Compiler... - C - Programmation
Marsh Posté le 29-03-2006 à 14:29:01
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``).
Marsh Posté le 29-03-2006 à 14:31:17
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.
Marsh Posté le 29-03-2006 à 14:36:49
Et il est fortement déconseillé d'appeler un programme test, surtout sous unix
Marsh Posté le 29-03-2006 à 14:42:50
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 ^^
Marsh Posté le 29-03-2006 à 14:47:00
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.
Marsh Posté le 29-03-2006 à 14:49:45
Merci Elmoricq, mais pourrais-tu me dire les étapes avec le programme que tu utilise pour voir?
Marsh Posté le 29-03-2006 à 15:08:48
fichiers sources:
.h -> contenant les définitions et déclarations (prototypes)
test.h:
|
.c -> contenant le code et les initialisations
test.c:
|
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:
|
typiquement: make
Marsh Posté le 29-03-2006 à 15:19:06
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)
Marsh Posté le 29-03-2006 à 15:25:25
attends j ai viré les ld, ça marche pas chez moi, y a que cc qui marche.
Marsh Posté le 29-03-2006 à 15:28:08
ok avec du copier/coller du code ci dessus ça marche sous linux. reste sous windows à avoir un compilo appelé ``cc``.
Marsh Posté le 29-03-2006 à 15:31:54
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
Marsh Posté le 29-03-2006 à 15:37:26
ouais... et puis utiliser une ptite librairie graphique, ajouter du son avec une lib TextToSpeech...
Marsh Posté le 29-03-2006 à 15:43:55
floboss07 a écrit : Voilà je me suis mis à la programmation, en commençant par le langage C. |
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 :
|
Pour forcer la recompilation :
Bouton Rebuild
ou
Build/Rebuild
ou Ctrl-F11
Citation : |
C'est légèrement atroce comme code...
Code :
|
Marsh Posté le 29-03-2006 à 15:44:54
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 :
|
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
Marsh Posté le 29-03-2006 à 15:47:09
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...
Marsh Posté le 29-03-2006 à 15:47:43
ben comme ils disent:
cc test.c
ça te crée un executable a.out
Marsh Posté le 29-03-2006 à 15:49:29
[quote="'Floboss07"]
[...]
J'utilise Windows XP
[...]
[/quote]
Marsh Posté le 29-03-2006 à 15:59:28
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.
Marsh Posté le 29-03-2006 à 16:04:54
nargy a écrit : ouais... et puis utiliser une ptite librairie graphique, ajouter du son avec une lib TextToSpeech... |
dans ton exemple le .h il sert à rien, sauf si tu compile test séparément, c'est tout
Marsh Posté le 29-03-2006 à 16:07:49
> 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``?
Marsh Posté le 29-03-2006 à 16:14:08
nargy a écrit : Floboss07 cherche le nom de son compilo, sous winXP ça doit sûrement être ``vcc``? |
Bêtises...
Borland : bcc
Mingw : gcc
Marsh Posté le 29-03-2006 à 16:19:45
nargy a écrit : et MSVC++? |
Le monsieur, il a parlé de Borland et de Code::Blocks...
Marsh Posté le 29-03-2006 à 16:26:34
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"..
Marsh Posté le 29-03-2006 à 19:58:38
Tu peux faire une phrase please? Parce que là je ne comprends pas ce que tu veux dire lol...
Marsh Posté le 29-03-2006 à 20:47:42
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é...
Marsh Posté le 29-03-2006 à 21:13:05
Niquel, merci, je vais donc continuer mon apprentissage...
Ca ne m'étonnerais pas que je vous repose bientot une autre question ^^
Marsh Posté le 29-03-2006 à 14:12:29
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
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
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 :
ou encore :
Merci