我有一个批处理文件来编译和链接我的所有代码。它包含以下内容:
@echo off
nasm -f aout -o start.o start.asm
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o main.o main.c
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o scrn.o scrn.c
ld -T link.ld -o kernel.bin start.o main.o scrn.o
pause
问题是,当我运行它时,它只是将所有这些打印为文本。 它绝对是一个批处理文件。它的.bat文件结尾,在notepad ++中,@ echo off和pause的语法正在突出显示而不是手动设置。 这是Windows 7的错误吗?或者我做错了什么?
答案 0 :(得分:5)
您是从命令行运行还是双击资源管理器?
也许您将编辑操作设置为默认值?
尝试右键单击并选择打开。
编辑:也许你的线路终结器搞砸了。 Windows期望CRLF。
在Notepad ++中:
答案 1 :(得分:1)
更简单的例子
Windows 7安装
使用cygwin获取gcc
我使用了以下批处理脚本:
PATH = %PATH%;C:\cygwin\bin;
gcc test.c
在以下c文件中:
main() {
printf("hello, world");
}
编译得很好。
我的结论
Windows 7批处理脚本的工作方式与之前版本的Windows非常相似。
可能让你失望的简单事情
默认情况下,Windows上未安装Gcc,我建议使用cygwin或mingw
安装gcc后,默认情况下Gcc不在PATH上,您可以将其添加到系统的环境变量中或将其添加到批处理脚本中(使用类似我刚刚使用的批处理脚本的第一行)。