c - gcc 使用 -o 而不是 -o3 构建?

标签 c gcc compiler-errors compiler-optimization

我的 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。

最佳答案

-o render 表示创建名称为 render 的输出文件。

现在您正在将此 -o 更改为 -o3,这是不正确的。相反,您需要保持 -o render 不变,并添加一个 -O3 标志以进行优化。注意大写字母 O

关于c - gcc 使用 -o 而不是 -o3 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321257/

相关文章:

c - 使用 C 为日历控制台应用程序添加选项卡

c++ - GCC 中的结构对齐(是否应在 typedef 中指定对齐?)

linux - 如何让 GCC 检测标准 C 库?

c - 反汇编c代码中的冗余操作

ios - 在iOS项目中使用Boost Framework和OpenCV时出现编译错误

jpa - QueryException异常错误

c++ - 模板函数导致找不到标识符

交叉编译 OpenSSL - 无法执行 openssl 二进制文件

c - 使用 Scanf 出现问题?

c++ - 如何转储 DSA_SIG 或 RSA_SIG