Emacs 中的编译[已关闭]

问题描述 投票:0回答:4

我配置并安装了emacs,但我不知道如何编译c 程序。 请给我完整的信息。

c emacs
4个回答

5
投票

正如已经回答的那样,编译命令会触发构建,该构建会自动将错误路由到缓冲区。

M-x compile

默认行为是在您正在编辑的文件所在的目录中运行 make。

make -k

-k 表示继续出错并创建尽可能多的目标。您可以在此阶段编辑命令行。

此设置可能会遇到两个问题。首先,如果你的源文件不在makefile所在的目录中,那么你需要设置默认目录文件变量。您可以通过在源文件顶部添加这样的行来完成此操作。

// -*- mode: C++; default-directory: "c:/somewhere/yourmakefiledirectory/" -*-

另一个问题是您是否不需要 makefile。如果您有一个包含一个或仅几个 cpp 文件的简单程序,并且您只想快速编译它们,就会发生这种情况。

您可以通过设置编译命令文件变量来完成此操作。现在,当您运行编译命令时,这将显示为构建程序的默认方式,而不是 make。

// -*- compile-command: "g++ -lpsapi -mwindows windowsprogram.cpp  -g -o windowsprogram.exe"; -*-

一旦编译完成并可能出现一些错误,您可以运行命令 next-error 和 previous-error 来上下移动源文件以查看它们。我不喜欢默认键,我倾向于使用此设置。

(global-set-key [f5] 'compile)

(global-set-key [f7] 'previous-error)
(global-set-key [f8] 'next-error)

我的博客上有更多类似的提示。


3
投票

M-x compile
默认情况下会运行 make。 不过,您需要安装适当的编译器,并设置 makefile 才能执行此操作。 完成此操作后,您可以使用
C-x
` 转到下一个错误。


2
投票

实际上有几种方法。最简单的方法是创建一个 make 文件并将其放置在与源代码相同的目录中。然后使用 M-x(Alt-x) 进行编译。另一种方法是使用 M-x eshell 从 emacs 中启动 shell。第三种方法是使用 elisp 编写脚本(如果您熟悉的话)。

© www.soinside.com 2019 - 2024. All rights reserved.