0
main: main.o print.o credits.o hello.o
        gcc -o main main.o print.o credits.o hello.o

main.o: main.c hello.h
        gcc -c -o main.o main.c

print.o: print.c hello.h
        gcc -c -o print.o print.c

credits.o: credits.c hello.h
        gcc -c -o credits.o credits.c

hello.o: hello.h
        gcc -c -o hello.o hello.h

使用 make 命令时出现此错误

/usr/bin/ld:hello.o: file format not recognized; treating as linker script
/usr/bin/ld:hello.o:1: syntax error
collect2: error: ld returned 1 exit status
make: *** [main] Error 1
4

2 回答 2

4

您应该更改倒数第二行和最后一行 -

hello.o: hello.hhello.o: hello.c hello.h

gcc -c -o hello.o hello.hgcc -c -o hello.o hello.c

这里的输入应该是ac文件。

为了获得更多理解,我建议您查看此链接

于 2013-09-26T05:35:32.517 回答
1

我认为问题在于您正在尝试编译一个 .h 文件,即 hello.h 您应该编译的应该是 hello.c

main: main.o print.o credits.o hello.o
    gcc -o main main.o print.o credits.o hello.o

main.o: main.c hello.h
    gcc -c -o main.o main.c

print.o: print.c hello.h
    gcc -c -o print.o print.c

credits.o: credits.c hello.h
    gcc -c -o credits.o credits.c

hello.o: hello.c hello.h
    gcc -c -o hello.o hello.c

应该管用

于 2013-09-26T05:40:20.197 回答