Severity code description project file line suppression state error lnk2019

I have added a googletest project to my app, but when I try to compile it, I get LNK2019 errors.  The main app compiles and runs, but the test app will not compile.

I have added a googletest project to my app, but when I try to compile it, I get LNK2019 errors.  The main app compiles and runs, but the test app will not compile.

// AstroCalcs.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Easter.h"

int main()
{
	Easter estr;
	auto result = estr.MyEasterFunc();
    return 0;
}
// Easter.h
#pragma once

class Easter
{
public:
	Easter();
	~Easter();

	int MyEasterFunc() const;
};
// Easter.cpp
#include "stdafx.h"
#include "Easter.h"

int Easter::MyEasterFunc() const
{
	return 0;
}

Easter::Easter() = default;

Easter::~Easter() = default;
// AstroCalcsTests.cpp
#include "pch.h"
#include "../AstroCalcs/Easter.h"

TEST(ShouldReturnCorrectEasterYear, GetEasterYear)
{
	Easter estr;

	const auto result = estr.MyEasterFunc();

	ASSERT_EQ(0, result);
}
TEST(TestCaseName, TestName) {
  EXPECT_EQ(1, 1);
  EXPECT_TRUE(true);
}

If I remove the test for ShouldReturnCorrectEasterYear, the tests compile and run without a problem.  If I add the year test back in, I get the following three error messages:

Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol «public: __thiscall Easter::Easter(void)» (??0Easter@@QAE@XZ) referenced in function «private: virtual void __thiscall ShouldReturnCorrectEasterYear_GetEasterYear_Test::TestBody(void)»
(?TestBody@ShouldReturnCorrectEasterYear_GetEasterYear_Test@@EAEXXZ) AstroCalcsTests D:SourcereposAstroCalcsAstroCalcsTestsAstroCalcsTests.obj 1 

Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol «public: __thiscall Easter::~Easter(void)» (??1Easter@@QAE@XZ) referenced in function «private: virtual void __thiscall ShouldReturnCorrectEasterYear_GetEasterYear_Test::TestBody(void)»
(?TestBody@ShouldReturnCorrectEasterYear_GetEasterYear_Test@@EAEXXZ) AstroCalcsTests D:SourcereposAstroCalcsAstroCalcsTestsAstroCalcsTests.obj 1 

Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol «public: int __thiscall Easter::MyEasterFunc(void)const » (?MyEasterFunc@Easter@@QBEHXZ) referenced in function «private: virtual void __thiscall ShouldReturnCorrectEasterYear_GetEasterYear_Test::TestBody(void)»
(?TestBody@ShouldReturnCorrectEasterYear_GetEasterYear_Test@@EAEXXZ) AstroCalcsTests D:SourcereposAstroCalcsAstroCalcsTestsAstroCalcsTests.obj 1 

In my solution property pages, I have made AstroCalcs a dependency for AstroCalcsTests.

I have tried setting the AstroCalcs configuration type as .exe and as type .lib.

I have tried setting AstroCalcsTests configuration type as .exe and as type .lib.


Rob E.

g8hyp

1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

1

08.04.2017, 18:20. Показов 2569. Ответов 16

Метки нет (Все метки)


В качестве учебной задачки начал реализовывать какое-то подобие вектора, но вот столкнулся с проблемой:

C++
1
2
Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "public: int __thiscall Vector_Class<int>::GetSize(void)" (?GetSize@?$Vector_Class@H@@QAEHXZ) referenced in function _main   Vector

Файл Vector_Class.h

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#pragma once
#include <iostream>
 
template <typename T>
class Vector_Class
{
private:
    T* pArr;
    int size;
public:
    Vector_Class();
    //Vector_Class(const Vector_Class&);
    ~Vector_Class();
    void Add(T);
    void DeleteValue(T);
    void Show();
    int GetSize();
    void operator<(T);
    T operator[](int);
};
 
template <typename T>
Vector_Class<T>::Vector_Class()
{
    pArr = nullptr;
    size = 0;
}
 
/*
template <typename T>
Vector_Class<T>::Vector_Class(const Vector_Class& vc)
{
    size = vc.GetSize();
    pArr = new T[size];
    for (int i = 0; i < size; i++)
        *(pArr + i) = (*vc)[i];
}
*/
 
template <typename T>
Vector_Class<T>::~Vector_Class()
{
    delete[] pArr;
}
 
template <typename T>
void Vector_Class<T>::Add(T val)
{
    T* newArr = new T[size + 1];
    for (int i = 0; i < size; i++)
        *(newArr + i) = *(pArr + i);
    *(newArr + size) = val;
    delete[] pArr;
    pArr = newArr;
    size++;
}
 
template <typename T>
void Vector_Class<T>::DeleteValue(T val)
{
    int cnt = 0;
    for (int i = 0; i < size; i++)
        if (*(pArr + i) == val)
            cnt++;
    T* newArr = new T[size - cnt];
    int j = 0;
    for (int i = 0; i < size; i++)
        if (*(pArr + i) != val)
        {
            *(newArr + j) = *(pArr + i);
            j++;
        }
    delete[] pArr;
    pArr = newArr;
    size -= cnt;
}
 
template <typename T>
void Vector_Class<T>::Show()
{
    for (int i = 0; i < size; i++)
        std::cout << i << ": " << *(pArr + i) << std::endl;
}
 
template <typename T>
int GetSize()
{
    return size;
}
 
//*
template <typename T>
void Vector_Class<T>::operator<(T val)
{
    this->Add(val);
}
//*/
 
template <typename T>
T Vector_Class<T>::operator[](int index)
{
    return *(pArr+index);
}

Файл с main:

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Vector.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h> // _getch()
#include "Vector_Class.h"
#include <iostream>
 
int main()
{
    Vector_Class<int>* vc = new Vector_Class<int>();
    vc->Add(5);
    vc->Show();
    /*
    {
        Vector_Class<int> vci = *vc;
        vci.Show();
    }
    */
    std::cout << vc->GetSize();
    delete vc;
 
    _getch();
    return 0;
}

Работаю в VS15. Т.к. нет никаких идей, предполагаю, что ошибка какая-нибудь совсем глупая

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

08.04.2017, 18:23

2

Лучший ответ Сообщение было отмечено g8hyp как решение

Решение

Принадлежность к классу укажи в 86-й строке как у прочих функций.



1



284 / 232 / 114

Регистрация: 07.09.2016

Сообщений: 584

08.04.2017, 18:38

3

Лучший ответ Сообщение было отмечено GbaLog- как решение

Решение

на случай, если не знаете, что означает «принадлежность к классу»:

int Vector_Class<T>::GetSize()

а где конструктор копирования и operator =?
почему константные методы не константные?
почему оператор < добавляет что-то в вектор? может быть имелся в виду operator <<?
оператор [] должен возвращать ссылку. иначе что будет делать такой вот код?
myVec[0] = 666; // ??? а должно бы в векторе первый элемент заменить. без ссылки этого не будет.



1



g8hyp

1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

08.04.2017, 19:37

 [ТС]

4

nmcf, Да, действительно, очень глупо вышло)
DU3, Хорошие замечания, появились вопросы. Начнём с конца: согласен, должна возвращаться ссылка, получается как-то так

C++
1
2
3
4
5
template <typename T>
T& Vector_Class<T>::operator[](int index)
{
    return (pArr + index);
}

но при попытке

C++
1
2
3
4
Vector_Class<int>* vc = new Vector_Class<int>();
vc->Add(5);
vc->Show();
int x = vc[0];

выдаётся ошибка:

C++
1
2
Severity    Code    Description Project File    Line    Suppression State
Error   C2440   'initializing': cannot convert from 'Vector_Class<int>' to 'int'    Vector

Добавлено через 7 минут
Так, нет, наверное всё-таки так:

C++
1
2
3
4
5
template <typename T>
T& Vector_Class<T>::operator[](int index)
{
    return *(pArr + index);
}

Но результат всё тот же…



0



nmcf

7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

08.04.2017, 20:28

5

C++
1
return pArr[index];



0



1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

08.04.2017, 20:59

 [ТС]

6

nmcf, Не, не выходит, всё тоже самое



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

08.04.2017, 21:01

7

Ты в самом классе-то функцию исправил?



0



g8hyp

1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

08.04.2017, 21:28

 [ТС]

8

И в классе:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <typename T>
class Vector_Class
{
private:
    T* pArr;
    int size;
public:
    Vector_Class();
    //Vector_Class(const Vector_Class&);
    ~Vector_Class();
    void Add(T);
    void DeleteValue(T);
    void Show();
    int GetSize();
    void operator<(T);
    T& operator[](int);
};

И в определении:

C++
1
2
3
4
5
template <typename T>
T& Vector_Class<T>::operator[](int index)
{
    return pArr[index];
}



0



DU3

284 / 232 / 114

Регистрация: 07.09.2016

Сообщений: 584

08.04.2017, 21:33

9

C++
1
2
3
4
5
// vc - указатель на Vector_Class<int>
// поэтому вот это
int x = vc[0];
int x =  *(vc + 0); // раз вы такую запись используете - вам должно быть понятно.
int x =  *vc; // или же вот так. теперь должно быть понятна почему ошибка.

вы зачем-то динамически вектор создали. а раз так — учитывайте то, что у вас указатель.
если продолжать юзать динамику, то самое простое — дополнительно заюзать ссылку:

C++
1
2
Vector_Class<int>& rcv = *vc;
int x = rvc[0];



0



g8hyp

1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

10.04.2017, 20:49

 [ТС]

10

Понял свою ошибку, пытался применить оператор [] к указателю, а не к объекту на который он указывает.
Появился следующий вопрос: реализую конструктор копирования

C++
1
2
3
4
5
6
7
8
template <typename T>
Vector_Class<T>::Vector_Class(const Vector_Class& vc)
{
    size = vc.GetSize();
    pArr = new T[size];
    for (int i = 0; i < size; i++)
        *(pArr + i) = vc[i];
}

Т.к. в конструктор передаётся константная ссылка, необходимо обеспечить чтобы GetSize() и [] были константными методами. Изменяю их:

C++
1
2
3
4
5
6
7
8
9
10
11
template <typename T>
int Vector_Class<T>::GetSize() const
{
    return size;
}
 
template <typename T>
T& Vector_Class<T>::operator[](int index) const
{
    return *(pArr+index);
}

Как я понял (видимо не правильно), эти методы не должны изменять объект. И если с GetSize() всё понятно, то почему я могу поменять число через []?

C++
1
2
3
4
5
6
Vector_Class<int>* vc = new Vector_Class<int>();
vc->Add(5);
vc->Show();
(*vc)[0] = 7;
vc->Show();
delete vc;



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

10.04.2017, 21:10

11

Тебе надо возврат const делать в таком случае.
Вообще-то обычно [] используется для изменения, как у std::vector. А функции типа GetSize() предназначены для внешнего использования, конструктор может работать с полями напрямую.



0



1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

10.04.2017, 21:26

 [ТС]

12

Мне не очень понятен смысл константного метода, т.е. после определения которого ставится const, как выше. Я думал, что такой метод не должен изменять содержимое объекта, но это не так. Так зачем же он нужен?



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

10.04.2017, 21:29

13

const в начале относится к возвращаемому значению, а в конце, как у тебя, означает, что функция не изменяет объект.

Добавлено через 1 минуту

Цитата
Сообщение от g8hyp
Посмотреть сообщение

но это не так

Это так. Функция у тебя ничего не изменяет.



0



g8hyp

1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

10.04.2017, 22:04

 [ТС]

14

Совсем запутался. Объявляю оператор константным:

C++
1
2
3
4
5
template <typename T>
T& Vector_Class<T>::operator[](int index) const
{
    return *(pArr+index);
}

И с его помощью меняю значение объекта:

C++
1
2
3
4
5
6
Vector_Class<int>* vc = new Vector_Class<int>();
vc->Add(5); // Добавляем 5
vc->Show(); // Выводим 5
(*vc)[0] = 7; // Изменяем 5 на 7
vc->Show(); // Выводим 7
delete vc;

UPD: Кажется понял, оператор не меняет объект, но возвращает ссылку через которую можно поменять объект…



0



nmcf

7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

10.04.2017, 22:13

15

C++
1
const T& Vector_Class<T>::operator[](int index)



0



DU3

284 / 232 / 114

Регистрация: 07.09.2016

Сообщений: 584

10.04.2017, 23:46

16

не то и не другое. нужны две функции, константная и неконстантная. а далее компилятор сам разрулит
опираясь на контекст вызова:

C++
1
2
3
4
5
6
7
8
9
10
11
12
template <typename T>
T& Vector_Class<T>::operator[](int index);
 
template <typename T>
const T& Vector_Class<T>::operator[](int index) const;
 
// ну и для с++11 запретить или еще как-то разрулить это дело для rvalue
template <typename T>
const T& Vector_Class<T>::operator[](int index) const && = delete;
 
template <typename T>
T& Vector_Class<T>::operator[](int index) && = delete;



0



1 / 1 / 1

Регистрация: 01.06.2009

Сообщений: 38

11.04.2017, 20:32

 [ТС]

17

DU3, спасибо! Два функции действительно выглядят логичней



0



Hey @nickgillian the example you link to above contains an error, testAccuracy is undefined.

But in any case, I can also reproduce the unresolved external symbol issue. Steps to reproduce:

  • Create a static build or GRT using the cmake build system + Visual Studio 2015 on Windows 10
  • Create a new VS solution using the «getting started» solution that links to grt.lib
  • Build

The following errors are generated:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: __thiscall GRT::VectorFloat::VectorFloat(class GRT::VectorFloat const &)" (__imp_??0VectorFloat@GRT@@QAE@ABV01@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual __thiscall GRT::VectorFloat::~VectorFloat(void)" (__imp_??1VectorFloat@GRT@@UAE@XZ) referenced in function "public: __thiscall GRT::GaussNeuron::~GaussNeuron(void)" (??1GaussNeuron@GRT@@QAE@XZ)	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: double * __thiscall GRT::Matrix<double>::operator[](unsigned int)" (__imp_??A?$Matrix@N@GRT@@QAEPANI@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: unsigned int __thiscall GRT::Matrix<double>::getNumRows(void)const " (__imp_?getNumRows@?$Matrix@N@GRT@@QBEIXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: unsigned int __thiscall GRT::Matrix<double>::getNumCols(void)const " (__imp_?getNumCols@?$Matrix@N@GRT@@QBEIXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual __thiscall GRT::MatrixFloat::~MatrixFloat(void)" (__imp_??1MatrixFloat@GRT@@UAE@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: unsigned int __thiscall GRT::ClassificationSample::getClassLabel(void)const " (__imp_?getClassLabel@ClassificationSample@GRT@@QBEIXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: class GRT::VectorFloat & __thiscall GRT::ClassificationSample::getSample(void)" (__imp_?getSample@ClassificationSample@GRT@@QAEAAVVectorFloat@2@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: __thiscall GRT::ClassificationData::ClassificationData(unsigned int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (__imp_??0ClassificationData@GRT@@QAE@IV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: __thiscall GRT::ClassificationData::ClassificationData(class GRT::ClassificationData const &)" (__imp_??0ClassificationData@GRT@@QAE@ABV01@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual __thiscall GRT::ClassificationData::~ClassificationData(void)" (__imp_??1ClassificationData@GRT@@UAE@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: class GRT::ClassificationSample & __thiscall GRT::ClassificationData::operator[](unsigned int const &)" (__imp_??AClassificationData@GRT@@QAEAAVClassificationSample@1@ABI@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: bool __thiscall GRT::ClassificationData::load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?load@ClassificationData@GRT@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: bool __thiscall GRT::ClassificationData::printStats(void)const " (__imp_?printStats@ClassificationData@GRT@@QBE_NXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: class GRT::ClassificationData __thiscall GRT::ClassificationData::split(unsigned int,bool)" (__imp_?split@ClassificationData@GRT@@QAE?AV12@I_N@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: unsigned int __thiscall GRT::ClassificationData::getNumSamples(void)const " (__imp_?getNumSamples@ClassificationData@GRT@@QBEIXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: __thiscall GRT::GestureRecognitionPipeline::GestureRecognitionPipeline(void)" (__imp_??0GestureRecognitionPipeline@GRT@@QAE@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual __thiscall GRT::GestureRecognitionPipeline::~GestureRecognitionPipeline(void)" (__imp_??1GestureRecognitionPipeline@GRT@@UAE@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: class GRT::GestureRecognitionPipeline & __thiscall GRT::GestureRecognitionPipeline::operator<<(class GRT::Classifier const &)" (__imp_??6GestureRecognitionPipeline@GRT@@QAEAAV01@ABVClassifier@1@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual bool __thiscall GRT::GestureRecognitionPipeline::test(class GRT::ClassificationData const &)" (__imp_?test@GestureRecognitionPipeline@GRT@@UAE_NABVClassificationData@2@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual bool __thiscall GRT::GestureRecognitionPipeline::save(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (__imp_?save@GestureRecognitionPipeline@GRT@@UBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual bool __thiscall GRT::GestureRecognitionPipeline::load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?load@GestureRecognitionPipeline@GRT@@UAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: unsigned int __thiscall GRT::GestureRecognitionPipeline::getNumClassesInModel(void)const " (__imp_?getNumClassesInModel@GestureRecognitionPipeline@GRT@@QBEIXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: unsigned int __thiscall GRT::GestureRecognitionPipeline::getPredictedClassLabel(void)const " (__imp_?getPredictedClassLabel@GestureRecognitionPipeline@GRT@@QBEIXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: double __thiscall GRT::GestureRecognitionPipeline::getTestAccuracy(void)const " (__imp_?getTestAccuracy@GestureRecognitionPipeline@GRT@@QBENXZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: double __thiscall GRT::GestureRecognitionPipeline::getTestFMeasure(unsigned int)const " (__imp_?getTestFMeasure@GestureRecognitionPipeline@GRT@@QBENI@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: double __thiscall GRT::GestureRecognitionPipeline::getTestPrecision(unsigned int)const " (__imp_?getTestPrecision@GestureRecognitionPipeline@GRT@@QBENI@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: double __thiscall GRT::GestureRecognitionPipeline::getTestRecall(unsigned int)const " (__imp_?getTestRecall@GestureRecognitionPipeline@GRT@@QBENI@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: class GRT::MatrixFloat __thiscall GRT::GestureRecognitionPipeline::getTestConfusionMatrix(void)const " (__imp_?getTestConfusionMatrix@GestureRecognitionPipeline@GRT@@QBE?AVMatrixFloat@2@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: class GRT::Vector<unsigned int> __thiscall GRT::GestureRecognitionPipeline::getClassLabels(void)const " (__imp_?getClassLabels@GestureRecognitionPipeline@GRT@@QBE?AV?$Vector@I@2@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: __thiscall GRT::ANBC::ANBC(bool,bool,double)" (__imp_??0ANBC@GRT@@QAE@_N0N@Z) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK2019	unresolved external symbol "__declspec(dllimport) public: virtual __thiscall GRT::ANBC::~ANBC(void)" (__imp_??1ANBC@GRT@@UAE@XZ) referenced in function _main	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1ConsoleApplication1.obj	1	
Error	LNK1120	32 unresolved externals	ConsoleApplication1	C:UsersJamie BullockDocumentsml-libbuildwin32ConsoleApplication1DebugConsoleApplication1.exe	1


#include<iostream>
#include <list>

using namespace std;



class Graph
{
    int V;    
    
    
    list<int> *adj;  

public:

    Graph(int V); 
    
    void addEdge(int v, int w);

    
    void BFS(int s);
};

Graph::Graph(int V)
{
    this->V = V;

    adj = new list<int>[V];
}

void Graph::addEdge(int v, int w)
{
    adj[v].push_back(w); }

void Graph::BFS(int s)
{
    
    bool *visited = new bool[V];

    for(int i = 0; i < V; i++)

        visited[i] = false;

    
    list<int> queue;

    
    visited[s] = true;

    queue.push_back(s);

    
    
    list<int>::iterator i;

    while(!queue.empty())
    {

        
        s = queue.front();

        cout << s << " ";

        queue.pop_front();

        
        
        
        for (i = adj[s].begin(); i != adj[s].end(); ++i)
        {
            if (!visited[*i])
            {
                visited[*i] = true;

                queue.push_back(*i);
            }
        }
    }
}


int main()
{
    
    Graph g(4);

    g.addEdge(0, 1);

    g.addEdge(0, 2);

    g.addEdge(1, 2);

    g.addEdge(2, 0);

    g.addEdge(2, 3);

    g.addEdge(3, 3);

    cout << "Following is Breadth First Traversal "

         << "(starting from vertex 2) n";

    g.BFS(2);

    return 0;
}

What I have tried:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2019	unresolved external symbol _WinMain@16 referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)	MIbasco_Project7	C:UsersIbascossourcereposMIbasco_Project7MSVCRTD.lib(exe_winmain.obj)	1	

This is the error I’m getting. I’m very new to C++ and I don’t have the experience to figure out what I’m doing wrong. I am using VS 2019. I appreciate any help, thank you!

Updated 12-Dec-20 23:20pm


You create a Windows project instead of a Console project. Windows application starts from WinMain() while console application starts from main(). Yours is a console application. You have 2 options to fix it: either recreate a new console application project and copy over your source code or follow the steps below.

  • Right-click on your project in Solution Explorer and click «Properties» on the popup menu.
  • Make sure Configuration and Platform on the Properties Page is same as your current setting.
  • Go to Linker->System
  • On the Subsystem dropdown, change from Windows(/Subsystem:Windows) to Console(/Subsystem:Console)
  • Click Ok to close the Properties Page and rebuild your project.

Updated 12-Dec-20 18:24pm

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject,
20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8
+1 (416) 849-8900

Понравилась статья? Поделить с друзьями:
  • Sims 3 как изменить внешность готового персонажа
  • Simcity 2013 ошибка обновления попытайтесь еще раз
  • Severity code description project file line suppression state error lnk1168 cannot open
  • Sims 3 script error файл
  • Siemens sinamics power module 240 коды ошибок