4

すべてのコードをコンパイルしてリンクするためのバッチ ファイルがあります。次の内容が含まれます。

@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 ファイルの終わりがあり、メモ帳 ++ では、@echo off と一時停止の構文が手動で設定せずに強調表示されています。これはWindows 7のバグですか?または私は何か間違ったことをしていますか?

4

2 に答える 2

5

コマンドラインから実行していますか、それともエクスプローラーでダブルクリックしていますか?

おそらく、編集アクションがデフォルトとして設定されていますか?

右クリックして [開く] を選択してみてください。

編集: 多分あなたの行ターミネータがめちゃくちゃです. Windows は CRLF を想定しています。

メモ帳++で:

  • [表示] → [行末を表示] をクリックします。
  • CRLF でない場合は、[フォーマット] -> [Windows フォーマットに変換] をクリックします。
于 2009-01-28T15:52:15.797 に答える
1


Windows 7 をインストールした簡単な例cygwin
を 使用して gcc を取得する

次のバッチ スクリプトを使用しました。

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

次のcファイルで:

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

そして、それはうまくコンパイルされました。

私の結論
Windows 7 のバッチ スクリプトは、以前のバージョンの Windows とほとんど同じように機能します。

あなたをつまずかせる可能性のある簡単なこと
GccはデフォルトではWindowsにインストールされていません。gccをインストールした後、デフォルトではcygwinまたはmingw
GccがPATHにないことをお勧めします。システムの環境変数に追加するか、バッチ スクリプト (先ほど使用したバッチ スクリプトの最初の行のようなものを使用)。

于 2009-01-28T15:35:52.117 に答える