2016-09-27 6 views
-1

私の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 

これは、私が使用していますメイクファイルです:

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 
~ 
+2

oops: 'g ++ -o main.o account.o checkingaccount.o savingsaccount.o -o main' - 2つの' -o'オプション? –

+1

'main.c'は' main'関数を持っていますか?おそらくない。しかし、コードはどこですか? –

+0

'main.cpp'ファイルには、' int main(int argc、char * argv []) 'という署名付き関数が含まれていますか? –

答えて

1

をこの行:

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

...冒頭で-oを持つべきではありません。これは、出力ファイルの名前としてmain.oを指定し、それをリンクしません。 2番目の-oはこれを上書きしますが、ファイルはまだリンクされていません。 main.cppはあなたのint main()機能を持っていると仮定すると、あなたはそれをリンクしていません。

関連する問題