You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manjaro KDE下使用Geany编译代码报make无目标无makefile错误如何解决

你遇到的make: *** No targets specified and no makefile found. Stop.报错,本质是Geany默认的构建规则调用了make工具,但你当前项目目录下没有编写Makefile文件,也没有指定编译目标。

前置检查

先确认你的系统已经安装基础编译工具链,打开终端执行以下命令安装:
sudo pacman -S base-devel gcc


场景1:仅编译单个代码文件(不需要Makefile)

这是新手最常见的使用场景,你不需要点击工具栏的「Build(构建)」按钮,直接使用单文件编译相关功能即可:

  • 仅编译当前文件生成对象文件:按快捷键F8
  • 编译当前文件为可执行文件并运行:按快捷键F9

如果按上述快捷键仍然报错,检查Geany的编译配置:

  1. 打开Geany顶部菜单「构建」->「设置构建命令」
  2. 找到你正在使用的编程语言对应配置项(以C语言为例),确认命令配置正确:
    • 编译命令:gcc -Wall -c "%f"
    • 生成可执行文件命令:gcc -Wall -o "%e" "%f"
    • 运行命令:"./%e"
  3. 保存配置后重新编译即可。

场景2:多文件项目需要使用Makefile编译

如果是多文件组成的项目,需要你在代码存放的根目录手动编写名为Makefile的规则文件,写明编译目标、依赖、编译参数后,再点击Geany的构建按钮才会正常生效。
以下是一个最简单的C语言多文件项目Makefile示例:

# 定义编译器
CC = gcc
# 定义编译参数
CFLAGS = -Wall
# 定义最终生成的可执行文件名
TARGET = my_program
# 定义所有需要的对象文件
OBJS = main.o func.o

# 生成最终可执行文件的规则
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $^

# 通用的.c文件编译为.o文件的规则
%.o: %.c
	$(CC) $(CFLAGS) -c $<

# 清理中间文件和可执行文件的规则
clean:
	rm -f $(OBJS) $(TARGET)

将上述内容保存为无后缀、文件名为Makefile(注意大小写敏感)的文件,放在你的代码同级目录下,再点击构建按钮即可正常执行编译。


内容的提问来源于stack exchange,提问作者matematicianu'

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:27:05