c++ - 使用 Cygwin 的 C++ 中的 undefined reference 错误,为什么我的文件没有链接?

标签 c++ cygwin clion

我有一系列来自共享 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/

相关文章:

cmake - 如何使用CMake链接到<math.h>库?

c++ - C++程序输出错误

c++ - 设计界面

cygwin - 从 GNUMakeFile 调用 Windows 批处理文件

c++ - CUDA编译器无法编译简单的测试程序

c++ - 在 Clion 中设置 Boost

c++ - 人口增长模式与预期不符

C++ 将隐式构造限制为特定值

mysql - Cygwin 上的 Heroku 正在记录一些奇怪的东西,看起来像 "mysql --help"

git - Cygwin 无法 pull 和推送代码