我不知道Dice.h和Dice.cpp的正确语法与我的最终game.cpp文件交谈。
我收到一个编译错误,它返回对Dice :: Dice()
的未定义引用以下是我的3个文件标题
Game.cpp
#include "Dice.h"
#include <iostream>
using namespace std;
int main()
{ int sum;
Dice dice1;
Dice dice2;
dice1.roll();
dice2.roll();
sum = dice1.getFace() + dice2.getFace();
cout << sum;
return 0;
}
Dice.h
#include <iostream>
#include <cassert>
#include <cstdlib>
#include <ctime>
// definition of class Dice
class Dice //... cont
Dice.cpp
#include "Dice.h"
using namespace std;
Dice::Dice() //... cont
我通过输入g ++ -Wall -o game game.cpp进行编译时出错 这是编译多个文件的正确方法吗?
答案 0 :(得分:1)
仅仅因为你在文件中包含了包含并不意味着它们将被编译在一起。
尝试g ++ -Wall -o游戏Dice.cpp Game.cpp
......我可能在命令上有点不对,但这应该有效
请注意,您应该仔细研究Makefile。让事情变得如此简单。
答案 1 :(得分:0)
另一个答案很接近,但略有偏离。输入
++ -Wall -o game game.cpp Dice.cpp
确保游戏是小写的,我认为包含main()
的文件需要先行。