小编Bla*_*edt的帖子

Windows makefile 中的反斜杠

重要编辑:我已经用我的特定 makefile 解决了这个问题,但我不知道如何解决。

我用正斜杠替换了反斜杠,事实证明我的规则适用于这些规则。Gcc 接受混合的正斜杠和反斜杠,所以它工作得很好。存在一个症结点mkdir:它不接受带有混合正斜杠和反斜杠的路径。我将变量更改为在 Windows 版本中仅包含反斜杠,现在该文件可以完美运行。

作为参考,这里有一些新规则和变量:

OUT = $(ROOT)\out SRC = $(ROOT)\src $(OUT): mkdir $(OUT) $(OUT)/%.o: $(SRC)/%.c $(CC) $(CFLAGS) -o $@ -c $<

为什么 minGW-make 在变量扩展后接受规则中的混合斜杠而不是仅接受反斜杠?这里究竟发生了什么?


原帖

我安装了 make for windows 的 minGW。我复制了 unix makefile 并将命令转换为 windows(并将正斜杠转换为反斜杠),但生成的 makefile 不起作用。

主要区别在于 Windows 有$(OUT) = $(ROOT)\out\win而 Unix 有$(OUT) = $(ROOT)/out。Unix 运行良好。 make -f makefile.win在 Windows 上抱怨没有规则<root>\out\win\LinkedList.o。有问题的规则和错误是:

make: *** No rule to make target `H:\CodeRIT\1014Syllables\out\win\LinkedList.o', needed by `H:\CodeRIT\1014Syllables\out\win\bin\syllables.exe'. Stop.

$(OUT)\%.o: $(ROOT)\src\%.c gcc …

windows mingw makefile

5
推荐指数
1
解决办法
6730
查看次数

标签 统计

makefile ×1

mingw ×1

windows ×1