Rechercher : dans
Par :

Impossible de compiler avec Vim

Dernière réponse le 24 jui 2007 à 17:04:03 Tintin72, le 23 jui 2007 à 18:53:45 
 Signaler ce message aux modérateurs

Bonjour,

J'essaie désepérement de compiler un simple programme C sous Vim mais ça ne
fonctionne pas (je suis sous Win XP).
J'ai suivi l'exemple de la doc: http://vim.dindinx.net/traduit/html/usr_30.txt.php#30.1
mais quand je tape ':make', le prompt me dit que la commande n'est pas reconnue.
(je précise que lorsque je compile directement par le prompt ça marche).
J'ai evidemment vérifié que Vim se trouve bien dans le bon répertoire
en tapant ':pwd' ou encore ':cd', et apparement c'est bon.

Par contre j'ai découvert que lorsque je remplace (avec regedit) le répertoire par défaut du prompt (D:\ chez moi) par le répertoire dans lequel se trouvent les sources (D:\prog\hello) ça marche.
Evidemment c'est pas pratique du tout car je dois changer le répertoire par défaut pour chaque
nouveau programme à compiler.

Est ce que quelqu'un pourrait m'aider parce que là je vois vraiment plus.

Merci

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Impossible de compiler avec Vim » dans :
Linux - Compilation du noyau (Kernel) Voir Compilation du Kernel Cet article a pour but de présenter la compilation du noyau (ou kernel) sous Linux. Les explications suivantes sont basées sur la version 2.4.20 du kernel, la dernière en date au moment de l'écriture de l'article (mars...
[Linux] Installer les programmes (gestion des paquets, compil) Voir ************************************************************** * INSTALLER UN PROGRAMME SOUS LINUX : **** * LA GESTION DES PAQUETS ou COMMENT SE SIMPLIFIER LA VIE * * UN EXEMPLE DE COMPILATION POUR SE FAIRE LA MAIN ...
La compilation et les modules en C et en C++ Voir Cet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Petit tuto sur VI/VIM VoirExtraits du tutoriel de VIM =============================================================================== B i e n v e n u e dans le T u t o r i e l de V I M - Version 1.5.fr.2...
Compiler du C sous Linux/UNIX VoirSous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer (aptitude install gcc). gcc Syntaxe de GCC gcc Tout d'abord, il faut savoir...
[vi/vim] Rechercher un mot VoirAfin de rechercher un mot sous Vi/Vim, il suffit de taper "/" ou "?", suivi du mot à rechercher afin de lancer la recherche respectivement vers le bas ou vers le haut. Une pression sur la touche "n" permet d'aller directement à l'occurence...

1

mamiemando, le 24 jui 2007 à 00:51:37

Tu as oublié le point d'exclamation !

int main(){
    std::cout << "plop" << std::endl;
    return 0;
}
~
~
~
:!g++ plop.cpp

ce qui donne
(mando@aldur) (~) $ vi plop.cpp


Appuyez sur ENTRÉE ou tapez une commande pour continuer

Quand je sauve et quitte :
(mando@aldur) (~) $ ./a.out
plop

Ce qui donne bien le résultat escompté. Le principe est bien entendu le même avec make, il faut juste que le Makefile soit dans le répertoire depuis lequel tu as ouvert vim.

Bonne chance

Répondre à mamiemando

2

Tintin72, le 24 jui 2007 à 09:32:39

Merci pour ta réponse mais le point d'exclamation n'y change rien.
Toutefois dans la doc c'est bien ':make' sans point d'exclamation.
J'ai remarqué qu'avec MinGW l'executable se nomme mingw32-make.exe et non make.exe.
J'ai donc tapé dans Vim:
:set makeprg=mingw32-make
puis :make
Mais la seul chose que j'obtiens c'est :

mingw32-make: *** No targets specified and no makefile found.

Si quelqu'un a une idée.

Répondre à Tintin72

3

mamiemando, le 24 jui 2007 à 10:12:38

En fait les deux marchent. Avec un point d'exclamation tu lances n'importe quelle commande shell depuis vim (en particulier make, dans ton cas mingw32-make). Avec :make, tu dis à vim de taper dans le makefile (et il utilise pour ça la variable makeprg). Les deux méthodes marchent chez moi.

Cependant dans ton cas, vim trouve ta commande make (enfin mingw32-make) mais pas le makefile. Pour moi c'est sans doute parce que tu as lancé vim dans un répertoire ne contenant pas de fichier "Makefile" ou "makefile". Si je reprends mon exemple en ajoutant ce makefile :

(mando@aldur) (~) $ cat Makefile
all:
        g++ plop.cpp

ensuite dans vim :
#include <iostream>

int main(){
    std::cout << "plop" << std::endl;
    return 0;
}
~
~
~
~
:!make

ce qui donne (de manière similaire à :make)
(mando@aldur) (~) $ vi plop.cpp

g++ plop.cpp

Appuyez sur ENTRÉE ou tapez une commande pour continuer

En particulier vérifie bien que tu as bien une tabulation (et pas des espaces) à la suite de ta cible (dans mon exemple all:) car sinon ton makefile ne peut pas marcher.

Bonne chance

Répondre à mamiemando

4

Tintin72, le 24 jui 2007 à 11:58:30

J'ai enfin trouvé l'origine du pb !
J'avais modifié l'emplacement du prompt par defaut
avec regedit (en créant une clé (autorun) avec la valeur: cd/d D:\)
de façon a avoir l'invite D:\> et pas C:\Documents and Settings\Tintin>
Tout le pb vient de là.

J'ai donc effacé la clé dans regedit (pour avoir à nouveau l'invite par défaut),
et j'ai placé le repertoire contenant mon prog dans C:
C:\hello
et maintenant tout fonctionne avec Vim, (compilation, déplacement et positionnement
dans les répertoires).
Par contre je ne sais toujours pas pourquoi le fait de modifier l'emplacement du prompt par defaut a créé une tel pagaille avec Vim ni comment résoudre ce pb.
En tous cas merci beaucoup pour ton aide.

Répondre à Tintin72

5

 mamiemando, le 24 jui 2007 à 17:04:03

Aucune idée je ne sais pas comment marche windows ;) L'important c'est que tu aies résolu ton problème !

Répondre à mamiemando
Collection CommentÇaMarche.net