メイクファイルについて学んでいるときに、私はこのエラーに出くわしました.私の教師は私に正しい方向を示すことができないようです. 関連するいくつかの質問を検索して読んでも、まだ答えが見えないようです。驚いたことに、NetBeans ではエラーが発生しません。
メイクファイル:
connect4: connect4.o basicBoardFunctions.o evaluationOfBoard.o hashCoding.o iaMinMaxing.o manageInput.o manageInputGeneral.o connect4.o
gcc -o connect4 connect4.o basicBoardFunctions.o evaluationOfBoard.o hashCoding.o iaMinMaxing.o manageInput.o manageInputGeneral.o connect4.o
connect4.o: connect4.c
gcc -c connect4.c
basicBoardFunctions.o: basicBoardFunctions.c
gcc -c basicBoardFunctions.c
evaluationOfBoard.o: evaluationOfBoard.c
gcc -c evaluationOfBoard.c
hashCoding.o: hashCoding.c
gcc -c hashCoding.c
iaMinMaxing.o: iaMinMaxing.c
gcc -c iaMinMaxing.c
manageInput.o: manageInput.c
gcc -c manageInput.c
manageInputGeneral.o: manageInputGeneral.c
gcc -c manageInputGeneral.c
clean:
rm connect4.o basicBoardFunctions.o evaluationOfBoard.o hashCoding.o iaMinMaxing.o manageInput.o manageInputGeneral.o tests.o connect4.o
私が得たエラー:
gcc -o connect4 connect4.o basicBoardFunctions.o evaluationOfBoard.o hashCoding.o iaMinMaxing.o manageInput.o manageInputGeneral.o connect4.o
connect4.o: In function `main':
connect4.c:(.text+0x0): multiple definition of `main'
connect4.o:connect4.c:(.text+0x0): first defined here
connect4.o: In function `getInputSource':
connect4.c:(.text+0xea): multiple definition of `getInputSource'
connect4.o:connect4.c:(.text+0xea): first defined here
connect4.o: In function `startGame':
connect4.c:(.text+0x1a9): multiple definition of `startGame'
connect4.o:connect4.c:(.text+0x1a9): first defined here
connect4.o: In function `anounceWinner':
connect4.c:(.text+0x2ac): multiple definition of `anounceWinner'
connect4.o:connect4.c:(.text+0x2ac): first defined here
collect2: ld returned 1 exit status
このすべての関数は、どこにも含まれていないメイン ファイル「connect4.c」で一度だけ定義されます。何を試せばいいのかわかりませんが、訓練を受けた人には明らかかもしれないと思いました。私は多くの批判を受ける気がしますが、他の状況が私に当てはまるとは思いません.