2

私の Makefile は次のようになります。

CC=gcc
CFLAGS=-Wall -Wextra -std=c99 -pedantic
OBJECTS=main.o Scene.o Matrix.o Vector.o Triangle.o Color.o Raster.o

render: $(OBJECTS)
    $(CC) $(CFLAGS) -lm -o render -g $(OBJECTS)
    rm $(OBJECTS)

clean:
    rm -f render*

これにより、エラーなしで実行可能ファイルがビルドされますが、-o を -o2 または -o3 に変更すると、次のエラーが発生します。

gcc -Wall -Wextra -std=c99 -pedantic   -c -o main.o main.c
gcc -Wall -Wextra -std=c99 -pedantic   -c -o Scene.o Scene.c
gcc -Wall -Wextra -std=c99 -pedantic   -c -o Matrix.o Matrix.c
gcc -Wall -Wextra -std=c99 -pedantic   -c -o Vector.o Vector.c
gcc -Wall -Wextra -std=c99 -pedantic   -c -o Triangle.o Triangle.c
gcc -Wall -Wextra -std=c99 -pedantic   -c -o Color.o Color.c
gcc -Wall -Wextra -std=c99 -pedantic   -c -o Raster.o Raster.c
gcc -Wall -Wextra -std=c99 -pedantic -lm -o3 render -g main.o Scene.o Matrix.o Vector.o Triangle.o Color.o Raster.o
gcc.exe: error: render: No such file or directory
make: *** [render] Error 1

最適化フラグによってコードにエラーが検出される可能性がありますが、その前にエラー メッセージが表示されないため、何が問題なのかを知るのは困難です。Windows 7 で MinGW/MSYS を使用しています。

4

2 に答える 2

7

-o renderという名前の出力ファイルを作成することを意味しますrender

-oこれを-o3間違ったものに変更しています。代わりに、そのままにして、最適化のためのフラグを-o render追加する必要があります。-O3大文字に注意してくださいO

于 2012-11-10T10:37:11.373 に答える
4

-o出力ファイルフラグです。あなたは-O(資本)について考えていました。

于 2012-11-10T10:35:03.403 に答える