La compilation et l'Exécution de code C dans notepad++
J'ai un problème avec la compilation et l'exécution de codes C dans notepad++.
Je suis l'aide de la nppexec plugin et a écrit ce qui suit dans la section script après avoir appuyé sur F6:
C:\MinGW\bin\gcc.exe -g "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)$(NAME_PART).exe"
$(CURRENT_DIRECTORY)$(NAME_PART).exe
Après avoir appuyé sur OK, je reçois le suivant sur la console:
C:\MinGW\bin\gcc.exe -g "D:\Silent\Documents\College Stuffth sem\NETWORKING lab\substitutioncypher.C" -o "D:\Silent\Documents\College Stuffth sem\NETWORKING lab\substitutioncypher.exe"
Process started >>>
<<< Process finished. (Exit code 0)
D:\Silent\Documents\College Stuffth sem\NETWORKING lab\substitutioncypher.exe
Process started >>>
Ici, substitution.c
est mon programme à exécuter. Le problème est que la gcc partie fonctionne bien, mais je ne suis pas en mesure d'exécuter le programme à partir d'ici il n'y a pas de réponse.
Comme vous le voyez, il dit seulement le processus a commencé et après cela, rien n'. Pas de réponse à une touche enfoncée, il à juste à accepte tout comme un éditeur de texte.
Si je vais dans le répertoire de travail et d'exécuter le programme à partir de là (en double cliquant sur le fichier exe file) puis il semble fonctionner parfaitement bien. Le problème semble être dans mon script ou plugin.
S'il vous plaît, quelqu'un peut-il savoir quel est le problème avec ma compilation et de l'exécution du script?
Vous devez vous connecter pour publier un commentaire.
En plus de @paxdiablo 's réponse, vous pouvez également trouver utile la suite NppExec script pour seul fichier projets:
La 1ère ligne enregistre le document actif à l'intérieur de notepad++.
La 2e ligne assure votre répertoire courant est celui du document actif. Ce vous permettre de s'abstenir d'utiliser la
"$(CURRENT_DIRECTORY)"
variable dans le reste des lignes.La 3e ligne supprime tous les fichiers exécutables et les fichiers objets restes de précédentes succès des compilations. Supprimer le dernier fichier exécutable est une bonne idée, parce que si vous n'avez pas la dernière ligne sera la cause de votre .exe produite par la dernière compilation pour être exécuté de toute façon, même si la compilation échoue. Une compilation a échoué ne produit pas un .exe, donc, normalement, vous ne voulez pas NppExec pour exécuter le précédent .exe. Retrait du produit objet-fichier est facultative, mais elle assure que cela n'affectera pas les frais de compilations (il fait plus de sens de fichiers multiples projets, comme une alternative à la
touch
outil de ligne de commande).La 4e ligne compile le document actif. N'hésitez pas à modifier du ccg options selon vos besoins. Si vous ajoutez
C:\MinGW\bin
dans le WindowsPATH
variable d'environnement, et en supposant que vous utilisez une seule gcc installation sur votre système, vous pouvez ignorer le chemin d'accès absolu, et d'écrire justegcc
à la place.La dernière ligne exécute l'exécutable produit. Le
npp_run
commande indique NppExec pour le lancement d'une nouvelle fenêtre d'invite de commande et exécutez votre programme (sauf si c'est un GUI WIN32 programme). Personnellement, je trouve cela plus pratique par rapport à la NppExec console intégrer dans notepad++. Il semble plus naturel, et il permet également d'éviter certains redirection d'e/S problèmes de la NppExec de la console.Toutefois, si votre programme est une application console qui n'a pas d'interaction avec l'utilisateur-dire via une boucle, alors cette approche sera la cause de la lancé fenêtre d'invite de commande pour fermer immédiatement après votre programme se termine, de ne pas vous donner la chance de les inspecter sa sortie. Dans ce cas, vous devez avoir vous programme en attente d'une touche enfoncée par l'utilisateur juste avant sa résiliation. Rapide et sale est de mettre un
system("pause");
juste avant votremain()
de la fonction dereturn
et/ouexit()
consolidés (il est beaucoup mieux d'écrire une simple croix-plate-forme de la fonction ou macro).Vous pouvez expérimenter avec le script ci-dessus en tapant F6 de
<temporary script>
et l'enregistrer de façon permanente pour un usage général, quand vous êtes heureux avec son comportement.Sur une note de côté, vous pouvez également trouver utile d'avoir un coup d'oeil à ce post, où j'essaie d'expliquer comment le programme d'installation NppExec de sorte qu'il saute à la ligne appropriée dans le code source, en double-cliquant sur une erreur de gcc crache dans la NppExec de la console lors de la compilation.