2009-06-03 9 views
3

J'essaie de m'habituer à utiliser Emacs pour construire et déboguer, même si j'ai quelques difficultés. Mon plus gros problème en ce moment est que je dois être dans (par exemple avoir un fichier ouvert dans) le répertoire racine à make -k mes applications et j'ai besoin d'être dans le répertoire binaires pour exécuter gdb MyApp.Comment changer le répertoire de travail pour construire/déboguer dans Emacs?

Est-il vain d'essayer d'obtenir Ctrl + Shift + B à make -k -C <my_hard_coded_dir> et un type de ditto avec F5 exécutant gdb <MyApp> depuis mon répertoire bin? Peu importe si la touche majuscule est à beaucoup de tracas pour Emacs.

Répondre

6

Pour spécifier ce que M-x rend utiliser pour la compilation, spécifiez la variable de commande de compilation.

(setq compile-command "make -c /path/to/makefile") 

Pour vos trucs GDB, la variable est GUD-gdb-commande nom, donc

(setq gud-gdb-command-name "gdb --anotate=3 -cd /path/to/exec") 
+0

L'option est '-C' et non' -c'. Voir ici: http://www.gnu.org/software/make/manual/make.html#Options-Summary – ceving

2

pour compiler j'utiliser ce spippet dans mes .emacs

(global-set-key [f2] 'compile) 
(global-set-key [f3] 'next-error) 
(setq compile-command "u: & cd \\gbceinspielen\\trunk\\src\\compile & make -k ") 

la commande « gdb » démarre le débogueur, mais je ne sais pas, wether il existe un équivalent à la compilation commande.

+1

Et pour obtenir Ctrl-Shift-B, remplacez-le par (kbd "C-S-b") pour [f2]. –

+0

Un plus pour désigner les starters pour faire, mais a dû faire -C -k, puisque cd ne fonctionnait pas (problème Linux?). Pas de chance de trouver des variables gdb si. Existe-t-il un type de liste pour ces variables et ce qu'elles font? –

+0

okay, désolé pour gdb, (je pensais que j'aurais dû, mais je ne savais pas, parce que je ne l'utilise pas) trouver des choses: M-x apropos –

0

Je suis personellement utiliser EDE pour maintenir les paramètres de compilation pour des projets concrets et créer la compilation commande sur la mouche. Vous pouvez voir comment cela fonctionne dans my cedet config, en commençant par la ligne 100

Questions connexes