Проблема с Windows Batch файл на Windows 7 - PullRequest
4 голосов
/ 28 января 2009

У меня есть командный файл для компиляции и связывания всего моего кода. Он содержит следующее:

@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? или я что-то не так делаю?

Ответы [ 2 ]

5 голосов
/ 28 января 2009

Вы запускаете из командной строки или дважды щелкаете в проводнике?

Может быть, у вас установлено действие Редактировать по умолчанию?

Попробуйте щелкнуть правой кнопкой мыши и выбрать Открыть .

РЕДАКТИРОВАТЬ: Может быть, ваши терминаторы строки запутались. Windows ожидает CRLF.

В Блокноте ++:

  • Нажмите Вид-> Показать конец строки.
  • Если они не являются CRLF, щелкните Формат-> Преобразовать в формат Windows.
1 голос
/ 28 января 2009

Более простой пример
Windows 7 установлена ​​
Использование cygwin для получения gcc

Я использовал следующий пакетный скрипт:

PATH = %PATH%;C:\cygwin\bin;
gcc test.c

в следующем файле c:

main() {
        printf("hello, world");
}

И скомпилировано нормально.

Мое заключение
Пакетные сценарии Windows 7 работают так же, как и в предыдущих версиях Windows.

Простые вещи, которые могут сбить вас с толку
Gcc по умолчанию не установлен в Windows, я предлагаю либо cygwin или mingw
Gcc не находится в PATH по умолчанию после того, как вы установили gcc, вы можете добавить его в системную переменную среды или добавить в свой пакетный скрипт (используя что-то вроде первой строки только что использованного пакетного сценария).

...