私のグループが作った.hファイルのうち、タックタックのゲームを作ってくれることを任されました。私はほとんどそれをコンパイルしていますが、次のようなエラーが表示されます: "アーキテクチャx86_64の未定義シンボル: " winstate(char *)、参照先: deki()in TicTacToe-ec883b.o ld:symbol )x86_64アーキテクチャで見つかりませんでした。 clang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しには-vを使用します)。 " .cppファイルでmainが使用されたためにdekiを使用しました。C++ヘッダーファイルのトラブル
#include <iostream>
#include "boardDisplay.h"
#include "user.h"
#include "winState.h"
using namespace std;
int main()
{
}
(何らかの理由でのiostreamが文句を言わない表示)とエラーと.hファイルは次のとおりです:次のように私のコードがある
#include <iostream>
using namespace std;
char winState(char []);
int deki() {
char gameBoard[] = {'O','X','X','N','O','N','N','N','O'};
winState(gameBoard);
char winState(char gameBoard[]);
if (gameBoard[0] == gameBoard[1] && gameBoard[1] == gameBoard[2]) {
cout << "The winner is " << gameBoard[0] << "!" << endl;
return (gameBoard[0]);
}else if (gameBoard[3] == gameBoard[4] && gameBoard[4] == gameBoard[5]) {
cout << "The winner is " << gameBoard[3] << "!" << endl;
return gameBoard[3];
}else if (gameBoard[6] == gameBoard[7] && gameBoard[7] == gameBoard[8]) {
cout << "The winner is " << gameBoard[6] << "!" << endl;
return gameBoard[6];
}else if (gameBoard[0] == gameBoard[3] && gameBoard[3] == gameBoard[6]) {
cout << "The winner is " << gameBoard[0] << "!" << endl;
return gameBoard[0];
}else if (gameBoard[1] == gameBoard[4] && gameBoard[4] == gameBoard[7]) {
cout << "The winner is " << gameBoard[1] << "!" << endl;
return gameBoard[1];
}else if (gameBoard[2] == gameBoard[5] && gameBoard[5] == gameBoard[8]) {
cout << "The winner is " << gameBoard[2] << "!" << endl;
return gameBoard[2];
}else if (gameBoard[0] == gameBoard[4] && gameBoard[4] == gameBoard[8]) {
cout << "The winner is " << gameBoard[0] << "!" << endl;
return gameBoard[0];
}else if (gameBoard[6] == gameBoard[4] && gameBoard[4] == gameBoard[2]) {
cout << "The winner is " << gameBoard[6] << "!" << endl;
return gameBoard[6];
}else if ((gameBoard[0]!='1')&&(gameBoard[1]!='2')&&(gameBoard[2]!='3')&&(gameBoard[3]!='4')&&(gameBoard[4]!='5')&&(gameBoard[5]!='6')&&(gameBoard[6]!='7')&&(gameBoard[7]!='8')&&(gameBoard[8]!='9')){
cout << "CATS GAME!" << endl;
return 'D';
}else {
cout << "The game is not over yet." << endl;
return 'G';
}
}
一般的には(あなたが遭遇した問題にかかわらず)、hファイルのほとんどはcppファイルに置かれます。 –
あなたは 'winState'の定義を持っておらず、いくつかの宣言と呼び出ししかありません。 – molbdnilo
@barakmanos条件は 'deki'の中にあります。 – molbdnilo