我正在尝试使用 makefile 编译由其他人编写的程序,并且在使用它之前我没有时间学习程序中的所有内容 - 因此我对一些错误感到困惑。
第一个错误是
(...): In function `_ZN30RealTriDiagonalSymmetricMatrix14ResizeAndCleanEii':
/home/jorgen/diaghamsvn/DiagHam/src/Matrix/RealTriDiagonalSymmetricMatrix.cc:350:
undefined reference to `GarbageFlag::Used()'
RealTriDiagonalSymmetricMatrix.cc中的违规行是:
if (this->Flag.Used() == true)
我查找文件GarbageFlag.h,它包含函数Used();这是其中的一部分:
class GarbageFlag
{
private:
#ifdef __SMP__
pthread_mutex_t *FlagMutex;
#endif
public:
// default constructor
GarbageFlag();
// copy constructor
// flag = garbage flag to copy
GarbageFlag(const GarbageFlag& flag);
// destructor
~GarbageFlag();
// return value = reference on current garbage flag
GarbageFlag& operator = (const GarbageFlag& flag);
bool Used ();
此外,文件RealTriDiagonalSymmetricMatrix.cc包含一个标题,该标题再次包含GarbageFlag.h。所以我很困惑为什么它找不到这个功能。
在此之后有很多类似的错误。有人知道发生了什么吗?