手动修改完Makefile后,编译遇到如何错误:
make[3]: Entering directory 'openwrt/feeds/packages/multimedia/smolrtsp'
Makefile:62: *** missing separator. Stop.
make[3]: Leaving directory 'openwrt/feeds/packages/multimedia/smolrtsp'
发给Gemini后,得到回复完美解决:
#使用 cat -T 命令显示 Tab 字符:
#cat -T 会将文件中的 Tab 字符显示为 ^I。如果一行看起来是缩进的,但行首没有 ^I,那它就是用的空格。
cat -T Makefile
#你应该会看到类似这样的输出,注意 ^I 符号:
执行替换命令:
这个命令会查找所有以4个空格开头的行,并将这4个空格替换为一个 Tab 字符。如果你的编辑器用的是2个或8个空格,请相应修改数字 \{4\}。
# 假设你的缩进是4个空格
sed -i 's/^ /\t/' Makefile
# 如果你的缩进是2个空格
# sed -i 's/^ /\t/' Makefile
# 如果你的缩进是8个空格
# sed -i 's/^ /\t/' Makefile
# -i 表示直接修改文件(in-place)。
# s/..../..../ 是替换命令。
# ^ 匹配行首的4个空格 (^ 表示行首)。
# \t 表示一个 Tab 字符。
# 如果你不确定是几个空格,可以写一个更通用的命令,它会把行首的所有连续空格替换为一个Tab:
sed -i 's/^[ ]\+/\t/' Makefile
# [ ]\+ 匹配一个或多个空格。