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

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 に答える