我正在尝试编译我的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
~
答案 0 :(得分:1)
这一行:
g++ -o main.o account.o checkingaccount.o savingsaccount.o -o main
...开头不应该有-o
。这指定main.o
作为输出文件的名称,但不链接它。第二个-o
会覆盖此内容,但该文件仍未链接。假设main.cpp
具有int main()
功能,则您不会将其链接到其中。