未解析的外部符号(使用RAII)

时间:2018-02-10 22:42:16

标签: c++

此问题已解决,只需将cpp文件与项目实施重新添加即可。

我目前正在使用具有RAII功能的Timer,我遇到了构造函数和析构函数的“未解析的外部符号”错误。 我错过了什么吗?

main.cpp中:

#include "Timer.h"
#include "File.h"

int main()
{
    RAIITimer timer;
    File f{"test.txt", true};
    for(int i{1000000}; i > 0; i--)
    {
        f.write("example\n");
    }
}

Timer.h:

#pragma once

#include <chrono>

#include "Types.h"

using hr_clock = std::chrono::high_resolution_clock;

class RAIITimer
{
public:
    RAIITimer(conststrref name = "Test");
    ~RAIITimer();

private:
    hr_clock::time_point m_start;
    hr_clock::time_point m_end;
    std::string m_name;
};

Timer.cpp:

#include "Timer.h"
#include "OutUtils.h"

using std::chrono::milliseconds;

RAIITimer::RAIITimer(conststrref name)
    :   m_name  {name}
{
    m_start = hr_clock::now();
}

RAIITimer::~RAIITimer()
{
    m_end = hr_clock::now();
    double duration = std::chrono::duration_cast<milliseconds>(m_end - m_start).count();
    logging::log(m_name + " finished in " + std::to_string(duration) + "ms");
}

我正在使用Visual Studio 2017.感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好吧,它似乎是Visual Studio的当前错误。我所要做的就是将文件重新添加到我的项目中。感谢Jorge Y!