C++ C+中未定义的引用错误+;使用Cygwin,为什么不';我的文件没有链接吗?
我有一个共享github项目中的一系列文件,它们可以完美地为其他人运行。但每次我运行它们,我都会得到一个 “CMakeFiles/Dice.cpp.dir/Player.cpp.o:在函数C++ C+中未定义的引用错误+;使用Cygwin,为什么不';我的文件没有链接吗?,c++,cygwin,clion,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:未定义对Dice::Dice()的引用“ 错误。Dice是我在电脑上写的唯一一门课。它包含在所有使用它的文件中,我
Player::Player(std::string)”中:
/cygdrive/c/Users/Abby/CLionProjects/Risk_-Domination/Player.cpp:51:未定义对
Dice::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);
你提到任何东西对其他人来说都是完美的,但对你来说都是无效的,特别是对你在电脑上写的文件。澄清一下:其他人可以用骰子编译吗 如果存在链接问题,则可能未将.cpp文件设置为使用CMake中的可执行文件进行编译。这告诉我问题在CMakeLists.txt文件中,而不是在任何源文件中
要解决此问题,请确保您希望Dice成为其中一部分的可执行文件或库在
添加可执行文件或类似函数中包含Dice.cpp文件。您提到,对于其他人来说,一切都能完美地工作,但对于您来说,一切都不工作,特别针对你在电脑上写的文件。澄清一下:其他人可以用骰子编译吗
如果存在链接问题,则可能未将.cpp文件设置为使用CMake中的可执行文件进行编译。这告诉我问题在CMakeLists.txt文件中,而不是在任何源文件中
要解决此问题,请确保您希望Dice成为其中一部分的可执行文件或库在添加可执行文件
或类似函数中包含Dice.cpp文件。可能太多,无法给出正确答案。也许通过检查中列出的一些常见可能性可以帮助您在出现错误时运行的确切编译器和/或链接器命令是什么?由于您使用的是CMake,因此可以通过运行make VERBOSE=1
获得更多详细信息。既然你标记了Cygwin,你能在Linux上重现这个问题吗?有一些链接问题可能是Cygwin所独有的,但如果它们出现在一个简单的学生项目中,我会感到惊讶。太多的可能性无法给出一个好的答案。也许通过检查中列出的一些常见可能性可以帮助您在出现错误时运行的确切编译器和/或链接器命令是什么?由于您使用的是CMake,因此可以通过运行make VERBOSE=1
获得更多详细信息。既然你标记了Cygwin,你能在Linux上重现这个问题吗?有一些链接问题可能是Cygwin所独有的,但如果它们出现在一个简单的学生项目中,我会感到惊讶。