motkot
@motkot
Программирование C#.

Ошибка unresolved external symbol с конструктором/деструктором в классе?

Вылезли две ошибки при попытке запуска:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2019	unresolved external symbol "public: __cdecl JazzyEcs::EcsSystems::EcsSystems(struct JazzyEcs::EcsWorld *)" (??0EcsSystems@JazzyEcs@@QEAA@PEAUEcsWorld@1@@Z) referenced in function main

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2019	unresolved external symbol "public: __cdecl JazzyEcs::EcsSystems::~EcsSystems(void)" (??1EcsSystems@JazzyEcs@@QEAA@XZ) referenced in function main


Попробовала удалить деструктор и одна из ошибок иcчезла:

class EcsSystems {
	public:
		EcsSystems(EcsWorld* world);
		//~EcsSystems(void);
};


.cpp фаил:

EcsSystems::EcsSystems(EcsWorld* world) : _world(world) {
		
	}
//EcsSystems::~EcsSystems() {

//}


main.cpp фаил:

JazzyEcs::EcsWorld world;

JazzyEcs::EcsSystems initSystems(&world);


world:

struct EcsWorld
{
	int count;
};
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Как компилируете-то? Пока похоже, что вы пытаетесь собрать исполнительный файл прямо из main.cpp, где через include обхявлен класс, но определение все лежит в другом модуле трансляции, который вообще в команде не учавствует.

Или пользуйтесь системой сборки (cmake, visual studio, ninja, и т.д...) или вручную запускайте 3 команды: сделать объектник из main.cpp, сдлеать объектник из EcsSystems.cpp, собрать из объектников исполняемый файл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы