développement C et vim

Bonsoir, et excusez moi pour ce post hyper basique…

Je commence ce soir même à apprendre le C / C++ via le tuto suivant où ils préconisent d’utiliser l’IDE code::block qui n’est pas dans l’archive :
http://www.siteduzero.com/tutoriel-3-13908-vous-avez-dit-programmer.html

Je précise que je ne connais rien à la programmation (hors xhtml/css)

Je commence (depuis peu) à me familiariser avec vim et je souhaite donc l’utiliser en lieu et place d’IDE, la coloration syntaxique et l’indentation auto sont en place, je sèche au niveau de la compilation :

j’ai mon fichier main.c qui contient le code, mais :make me renvoit l’erreur suivante :

Appuyez sur ENTRÉE ou tapez une commande pour continuer make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.

Est ce que je dois créer un makefile à la main ou me manque-t-il un paquet ?
Quel debugger me conseillez vous ?

Alors oui, il te faut créer un Makefile à la main, avec des règles dedans.
Par exemple, une règle all, qui compilera tout.
une autre règle clean, pour virer les anciens binaires…

Au départ, lorsque l’on a qu’un tout petit fichier source, ce n’est pas super utile, mais ensuite si.
Tiens, regarde par ici :
ftp.traduc.org/doc-vf/gazette-li … g83-B.html

Sinon, en attendant avec vim :
!gcc main.c -o programme_test

Merci bien :smiley: !
Et sinon, pour un débogueur ?

Je ne suis as très doué en C pour vraiment t’aider. MisterFreez a quelquefois parlé de compiler avec une certaine option afin de voir avec gdb. Il y a un truc aussi qui commence pas V pour voir l’occupation de la mémoire… Attends que quelqu’un de plus doué passe par là :slightly_smiling:
C’est d’ailleurs parce que je ne savais vraiment avec quelle commande compilé que je me suis tourné vers le python. Mais si tu as du temps devant toi, faire du C donnera des programmes avec de meilleures performances.

Salut,

Afin de pouvoir utiliser un débugueur, tu dois utiliser l’option -g de gcc à la compilation de ton programme.

Tu parles du programme valgrind?

Sinon, concernant la commande make, tant que ton programme reste simple tu peux utiliser les règles implicites afin de le compiler. Si tu as juste un fichier main.c, tu peux faire :mak main :wink:

Donc, si je récapitule :

  1. j’écris mon code dans mon main.c (je précise que j’en suis encore au “hello world !” que je n’arrive pas à compiler…) avec vim.
  2. je lance :make main.c (j’ai configuré vim pour ce placer ds le répertoire du fichier ouvert et pour enregistrer avant un :make)
  3. Je me retrouve avec un ficher main dans mon dossier
  4. pour l’exécuter je lance “$ sh main” et ça ne marche pas…
    Est ce qu’il y a quelque chose que je fais mal ?

EDIT: j’ai bien le droit d’exécuter mon “main” le problème ne vient pas de là.

La commande à exécuter est :make main, si tu mets main.c tu dis à make que tu souhaites crée la cible main.c alors que ce fichier existe déjà. Sinon, la commande sh permet d’exécuter un script bash, pour exécuter un programme la commande est ./nom_du_programme :wink:

Merci à toi ! :smiley:

J’ai lu vite fait. Pour compiler un programme d’un seul fichier avec make sous vim la commande la plus générique et la plus simple c’est :

Expliquations :
[ul]
[li]main avec le nom du programme que tu veut générer va chercher le même nom avec l’extension .c, .cpp (probablement .cc et .c++ et il doit aussi le faire avec le fortran) pour le compiler et donner l’exécutable[/li]
[li]% représente le nom du fichier en cours d’édition (celui du buffer courant)[/li]
[li]:r permet de retirer l’extension[/li][/ul]

Donc ça ça peut s’utiliser sans créer de fichier Makefile. Si tu as a ajouter des options il faut :
[ul]
[li]soit positionner les variables d’environnement CFLAGS ou LDFLAGS en conséquence[/li]
[li]soit créer un makefile avec la déclaration des variables adéquates dedans[/li][/ul]

Ok, Merci à vous !

je rajoute donc (astuce pour vim) et notamment vim-t8605.html#p103448

Je n’arrive pas à ouvrir ton lien… (chromium et iw…) :confused:

et si tu rajouté un h car le protocole ttp n’est pas évident à ouvrir avec nos navigateurs :005 :005 :005

:mrgreen:

Et moi qui ai fait un bête clic sans même regarder l’url alors que c’est évident :mrgreen: