0

I got such error with the message:

TestBufferQueue.obj : error LNK2019: unresolved external symbol "void __cdecl GenerateAndEnqueueItems<class QueueItem,15>(int,class common::bufferqueue<class QueueItem,15> &)" (??$GenerateAndEnqueueItems@VQueueItem@@$0P@@@YAXHAAV?$bufferqueue@VQueueItem@@$0P@@common@@@Z) referenced in function "private: virtual void __thiscall TestClear_ClearsMultipleElements_Test::TestBody(void)" (?TestBody@TestClear_ClearsMultipleElements_Test@@EAEXXZ)

My code. Header file Helpers.h:

#pragma once

// includes skipped

QueueItem* GenerateQueueItem();

template <typename T, int size>
void GenerateAndEnqueueItems(int, common::bufferqueue<T, size>&);

Cpp file Helpers.cpp:

#include "pch.h"
#include "Helpers.h"

QueueItem* GenerateQueueItem()
{
    // code
}

template <typename T, int size>
void GenerateAndEnqueueItems(int itemsNumber, common::bufferqueue<T, size>& queueItem)
{
    // code
}

Code usage:

#include "pch.h"
#include "Helpers.h"

TEST(TestClear, ClearsMultipleElements) {
    common::bufferqueue<QueueItem, 15> testee;

    GenerateAndEnqueueItems(15, testee);

    // code
}

Clean and rebuild didn't help. All the object files were created. How to solve it?

Foo Boy
  • 9
  • 3

0 Answers0