私はちょうどC + +とグリップを取得し、ヘッダーファイルを使用するように進んでいます。私は全く混乱しています。私はドキュメンテーションを読んだことがありますが、私はそれを十分に理解することはできません。C++ヘッダーと未定義の参照
私はちょうどインタラクティブな愚かな「ゲーム」を作っています。それはおそらく破棄され、ヘッダーファイルの使用を練習できると考えられました。ここでは、今
terminal_test
├── core.cpp
└── game
├── game.cpp
└── game.h
私core.cppです::これは私のファイル構造である他の
#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include "game/game.h"
using namespace std;
void mainMenu();
void rootInterface() {
cout << "[email protected]:~# ";
}
int main() {
system("clear");
usleep(2000);
mainMenu();
return 0;
}
void mainMenu() {
int menuChoice = 0;
cout << "[1] - Start Game";
cout << "[2] - How To Play";
cout << endl;
rootInterface();
cin >> menuChoice;
if (menuChoice == 1) {
startGame();
} else if (menuChoice == 2) {
cout << "This worked.";
}
}
すべてが正常に動作しますが、私のメニュー選択の下startGame();
。 g++ core.cpp game/game.cpp
を使用してコンパイルすると、このエラーで復帰します:undefined reference to startGame();
。私はまず、game.h
を正しく検索していたかどうかを確認するために、#include "game.h"
のようなディレクトリに変更してください。ここで
は私game.hです:
#ifndef GAME_H // Making sure not to include the header multiple times
#define GAME_H
#include "game.h"
void startGame();
#endif
game.cpp:
#include <iostream>
#include <stdio.h>
#include "game.h"
int main(int argc, char const *argv[]) {
void startGame() {
cout << "It worked.";
}
return 0;
}
マイファイル構造はどちらか適切に命名されていませんそれだけのものだったので、私はちょうどそれを投げましたC++でヘッダーファイルを手に入れよう。
だから、ここに私の質問は以下のとおりです。
1) - このエラーは、特に何を言っていると私はそれを修正するために何をすべきでしょうか?
2) - ヘッダーファイルは他のファイルと通信して動作するために、そこに明確なドキュメント/ガイドがありますか?
コンパイルとリンクの方法を表示します。問題はおそらくそこにあります。 game.cppの 'startGame'の –
は' main'の中にネストされています。 1. 'startGame'はファイルスコープでなければなりません。 2. game.cppから 'main'を削除します。すでに' core.cpp'にあります。 – bolov
'g ++ core.cpp game/game.cpp'が必要です。プログラムには他にもエラーがありますが(または実際のコードを投稿しないでください) –