c ++程序编译没有对main的引用

时间:2016-09-27 19:21:05

标签: c++

我正在尝试编译我的c ++程序,但是我收到了这个错误。

g++ -c main.cpp
g++ -o main.o account.o checkingaccount.o savingsaccount.o -o main
/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

这是我正在使用的makefile:

all: main

main: main.o account.o checkingaccount.o savingsaccount.o
        g++ -o main.o account.o checkingaccount.o savingsaccount.o -o main

main.o: main.cpp checkingaccount.h savingsaccount.h account.h
        g++ -c main.cpp

account.o: account.cpp account.h
        g++ -c account.cpp

checkingaccount.o: checkingaccount.cpp checkingaccount.h account.h
        g++ -c checkingaccount.cpp

savingsaccount.o: savingsaccount.cpp savingsaccount.h account.h
        g++ -c savingsaccount.cpp
~

1 个答案:

答案 0 :(得分:1)

这一行:

g++ -o main.o account.o checkingaccount.o savingsaccount.o -o main

...开头不应该有-o。这指定main.o作为输出文件的名称,但不链接它。第二个-o会覆盖此内容,但该文件仍未链接。假设main.cpp具有int main()功能,则您不会将其链接到其中。