我有一系列来自共享 github 项目的文件,它们对其他人来说运行完美。但每次我运行它们时,我都会得到一个
“CMakeFiles/Dice.cpp.dir/Player.cpp.o:在函数Player::Player(std::string)'中:
/cygdrive/c/Users/Abby/CLionProjects/Risk_Domination/Player.cpp:51: undefined reference
Dice::Dice()'"
错误。骰子是我在计算机上编写的唯一类。它包含在所有使用它的文件中,我不知道为什么两者不会链接。下次我引用变量 dice 时,我再次遇到同样的错误。
出现错误的文件播放器包括以下所有内容。类 Dice 确实包含一个构造函数 Dice(),它已定义并经过测试。
#include "Dice.h"
//and errors are pointing to line 51:
this->dice = new Dice();
//and line 81
a = dice->rollDice(number_of_dice);
最佳答案
您提到一切对其他人来说都是完美的,但对您来说却行不通,特别是对于您在 PC 上编写的文件。澄清一下:其他人可以使用 Dice 进行编译吗?
如果您遇到链接问题,可能是因为 .cpp 文件未设置为与 CMake 中的可执行文件一起编译。这告诉我问题出在 CMakeLists.txt 文件中,而不是在任何源文件中。
要解决此问题,请确保您希望 Dice 成为其一部分的可执行文件或库在 add_executable
或类似函数中包含 Dice.cpp 文件。
关于c++ - 使用 Cygwin 的 C++ 中的 undefined reference 错误,为什么我的文件没有链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58650399/