Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;对类函数的未定义引用_C++ - Fatal编程技术网

C++ C++;对类函数的未定义引用

C++ C++;对类函数的未定义引用,c++,C++,我遇到了这个错误,我在任何地方都找不到解决方案。。这应该是工作,但与这个错误,我没有继续前进,我无法找到哪里是问题 g++ -std=c++0x -pedantic -Wall -Wextra simims.cpp -o simims /tmp/ccZa3W7s.o: In function `Calendar::Init(double, double)': simims.cpp:(.text+0x5d): undefined reference to `Calendar::start_time

我遇到了这个错误,我在任何地方都找不到解决方案。。这应该是工作,但与这个错误,我没有继续前进,我无法找到哪里是问题

g++ -std=c++0x -pedantic -Wall -Wextra simims.cpp -o simims
/tmp/ccZa3W7s.o: In function `Calendar::Init(double, double)':
simims.cpp:(.text+0x5d): undefined reference to `Calendar::start_time'
simims.cpp:(.text+0x6a): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x77): undefined reference to `Calendar::end_time'
/tmp/ccZa3W7s.o: In function `Calendar::Push(Process*, double)':
simims.cpp:(.text+0x9f): undefined reference to 
`Calendar::listOfEvents[abi:cxx11]'
/tmp/ccZa3W7s.o: In function `Calendar::Pop(std::__cxx11::list<Process, 
std::allocator<Process> >)':
simims.cpp:(.text+0x1b9): undefined reference to 
`Calendar::listOfEvents[abi:cxx11]'
/tmp/ccZa3W7s.o: In function `Calendar::PopLists[abi:cxx11](double)':
simims.cpp:(.text+0x1da): undefined reference to 
`Calendar::listOfEvents[abi:cxx11]'
/tmp/ccZa3W7s.o: In function `Calendar::Run()':
simims.cpp:(.text+0x230): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x24a): undefined reference to 
`Calendar::listOfEvents[abi:cxx11]'
simims.cpp:(.text+0x29a): undefined reference to `Calendar::end_time'
simims.cpp:(.text+0x2b1): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x2b9): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x2c1): undefined reference to `Calendar::start_time'
simims.cpp:(.text+0x2d9): undefined reference to `Process::Behavior()'
simims.cpp:(.text+0x2f8): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x30c): undefined reference to `Calendar::Time'
/tmp/ccZa3W7s.o: In function `Process::Wait(double)':
simims.cpp:(.text+0x3ef): undefined reference to `Calendar::Time'
collect2: error: ld returned 1 exit status
g++-std=c++0x-pedantic-Wall-Wextra simims.cpp-o simims
/tmp/ccZa3W7s.o:在函数“Calendar::Init(double,double)”中:
simims.cpp:(.text+0x5d):对“日历::开始时间”的未定义引用
simims.cpp:(.text+0x6a):对“Calendar::Time”的未定义引用
simims.cpp:(.text+0x77):对“日历::结束时间”的未定义引用
/tmp/ccZa3W7s.o:在函数“日历::推送(进程*,双)”中:
simims.cpp:(.text+0x9f):未定义对的引用
`日历::事件列表[abi:cxx11]'
/tmp/ccZa3W7s.o:在函数“Calendar::Pop(std::uu cxx11::list)”中:
simims.cpp:(.text+0x1b9):未定义对的引用
`日历::事件列表[abi:cxx11]'
/tmp/ccZa3W7s.o:在函数“Calendar::PopList[abi:cxx11](双精度)”中:
simims.cpp:(.text+0x1da):未定义对的引用
`日历::事件列表[abi:cxx11]'
/tmp/ccZa3W7s.o:在函数“Calendar::Run()”中:
simims.cpp:(.text+0x230):对“Calendar::Time”的未定义引用
simims.cpp:(.text+0x24a):未定义对的引用
`日历::事件列表[abi:cxx11]'
simims.cpp:(.text+0x29a):对“日历::结束时间”的未定义引用
simms.cpp:(.text+0x2b1):对“日历::时间”的未定义引用
simims.cpp:(.text+0x2b9):对“Calendar::Time”的未定义引用
simims.cpp:(.text+0x2c1):对“日历::开始时间”的未定义引用
simims.cpp:(.text+0x2d9):未定义对“Process::Behavior()的引用”
simims.cpp:(.text+0x2f8):对“Calendar::Time”的未定义引用
simims.cpp:(.text+0x30c):对“Calendar::Time”的未定义引用
/tmp/ccZa3W7s.o:在函数'Process::Wait(double)'中:
simims.cpp:(.text+0x3ef):对“Calendar::Time”的未定义引用
collect2:错误:ld返回了1个退出状态
这是我的C++课程:

class Calendar
{
public:
    static double start_time;
    static double Time;
    static double end_time; 
    static list<list<Process>> listOfEvents;
    Calendar();
    ~Calendar();
    static void Run();
    static void Push(Process*, double t);
    static Process * Pop(list<Process> listOfLists);
    static list<Process> PopLists(double t);
    static void Init(double, double);
    static Calendar * GetInstance()     // Singleton
    {
        if(instance == NULL)
            instance = new Calendar();
        return instance;
    }
private:
    static Calendar * instance;     // Singleton variable
};
课程日历
{
公众:
静态双启动时间;
静态双倍时间;
静态双端时间;
事件静态列表;
日历();
~Calendar();
静态无效运行();
静态空隙推力(过程*,双t);
静态进程*Pop(列表列表);
静态列表PopLists(双t);
静态void Init(double,double);
静态日历*GetInstance()//单例
{
if(实例==NULL)
实例=新日历();
返回实例;
}
私人:
静态日历*实例;//单例变量
};
有人知道哪里会有问题吗?
谢谢

变量名时间和上课时间之间存在冲突

static double Time;
将时间重命名为其他变量

static double MyTime;

您应该首先使用
日历
类编译文件:

g++ -std=c++0x -pedantic -Wall -Wextra Calendar.cpp -o calendar.o
然后尝试将其链接到
simims.cpp

g++ -std=c++0x -pedantic -Wall -Wextra calendar.o simims.cpp -o simims

您的实现中似乎存在问题。Calendar.cpp看起来像什么?该类声明仅声明类变量和类函数。显然,你的编译器找不到这些的定义,你的链接器也找不到。我没有将文件划分为类。。只有simims.cpp和simims.h,simims.h包含多个类。。我会试着把它分开。。谢天谢地,还是一样的错误。。