dealer: dealer.o readline.o car.o
        gcc -o dealer readline.o car.o

    dealer.o: dealer.c car.h readline.h
        gcc -c dealer.c

    readline.o: readline.c car.h readline.h
        gcc -c readline.c

    car.o: car.c car.h readline.h
        gcc -c car.c

make dealer
gcc -c dealer.c
gcc -c readline.c
gcc -c car.c
gcc -o dealer readline.o car.o
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [dealer] Error 1

我不断地发现上面的错误。我的dealer.c确实包含“main”。
有人知道发生了什么事吗?

最佳答案

您的链接行:

gcc -o dealer readline.o car.o

不包含dealer.o,这解释了为何缺少main。应该是:
gcc -o dealer dealer.o readline.o car.o

(由-o dealer指示的最终可执行文件的名称与目标文件之间没有自动/猜测的关系)

关于c - C-makefile错误未定义对main的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47295140/

10-09 06:47