Impossible de compiler avec Vim

Résolu/Fermé
Tintin72 - 23 juil. 2007 à 18:53
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 24 juil. 2007 à 17:04
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
A voir également:

5 réponses

mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 7 808
24 juil. 2007 à 00:51
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
1
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.
0
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 7 808
24 juil. 2007 à 10:12
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
0
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 7 808
24 juil. 2007 à 17:04
Aucune idée je ne sais pas comment marche windows ;) L'important c'est que tu aies résolu ton problème !
0