Войти
ПрограммированиеФорумОбщее

SFML, ошибки линковки.

Страницы: 1 2 Следующая »
#0
11:08, 29 мар 2018

Добрый день! Пытаюсь по-эксперементировать на SFML, подглядывая и подкопируя в уроки на кучке-пс. 13 студия, подрубил библиотеку в соответствии с инструкцией, всё по шагам.
Пока всё было в рамках main - работало как часы. Когда стал разносить по классам - линкёр постоянно ругается подобным:
error LNK2019: unresolved external symbol "public: __thiscall Charaster::Charaster(int)" (??0Charaster@@QAE@H@Z) referenced in function _main.

Первоначально в конструкторе было sf::String, думал дело в нём, изменил временно на инт - тоже самое.
Сам не большой спец по с++ и вижуал студио, туплю уже несколько дней, подскажите, пожалуйста, в  чём может быть дело?

Код ужасный, да, но всё равно тестовый, без какой цели  - "напоиграться".

main:

+ Показать

Her.h

+ Показать

Her.cpp

+ Показать

Map.h

+ Показать

Map.cpp

+ Показать
#1
11:25, 29 мар 2018

Seraphimt
> Когда стал разносить по классам - линкёр постоянно ругается подобным:
В смысле - по разным файлам?
А her.obj имеется где-то после компиляции?

#2
12:05, 29 мар 2018

Сантик123
> Seraphimt
> > Когда стал разносить по классам - линкёр постоянно ругается подобным:
> В смысле - по разным файлам?
> А her.obj имеется где-то после компиляции?
Да, по разным файлам в смысле.
Да, в папке Debag

#3
12:29, 29 мар 2018

Я бы избавился для начала собственно от SFML)
Закомментировать его инклюды и добиться компиляции.

Непонятно присутствие "stdafx.h" УДАЛИТЬ! Что вообще в нём? Хотя это к делу не относится, конечно.

Какой опыт с Visual Studio вообще?

#4
13:00, 29 мар 2018

Сантик123
> Я бы избавился для начала собственно от SFML)
> Закомментировать его инклюды и добиться компиляции.
> Непонятно присутствие "stdafx.h" УДАЛИТЬ! Что вообще в нём? Хотя это к делу не
> относится, конечно.
> Какой опыт с Visual Studio вообще?
Убрал, всё скомпилировалось.
Десяток лаб в универе, тетрекс:)
Содержание stdafx.h :

#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#5
13:08, 29 мар 2018

#include "stdafx.h", насколько я понимаю, применяется для прекомпилированных заголовков и вообще не надо в твоём случае.

< Убрал, всё скомпилировалось.
Очень хорошо.  И что, как только подключаешь
#include <SFML/Graphics.hpp>
сразу вот такая ошибка линковки?

Давай полный лог, что выводит.

#6
13:17, 29 мар 2018

Сантик123
> Очень хорошо.  И что, как только подключаешь
> #include <SFML/Graphics.hpp>
> сразу вот такая ошибка линковки?
Нет, как только объест своего класса объявляю:

 
Charaster lion(1);

Лог такой:

+ Показать
#7
13:30, 29 мар 2018

> Debug\Her.obj : warning LNK4042: object specified more than once; extras ignored

Сдаётся мне, вот тут проблема - her.obj более чем один экземпляр. Возможно, в sfml такой же есть.
Попробуй her.cpp назвать по другому.

И да, жаль, что ты не точно выполнил моё пожелание:
> Я бы избавился для начала собственно от SFML)
> Закомментировать его инклюды и добиться компиляции.
Здесь же не написано - закомментить Charaster lion(1);

Точнее надо быть, а то много времени теряется)

#8
13:31, 29 мар 2018

Да, ещё, бывает, пересборка (rebuild) помогает. Вообще её надо делать в первую очередь при непонятной ошибке.

#9
13:35, 29 мар 2018

И вообще - почему her? Почему не Charaser ?

#10
13:42, 29 мар 2018

Сантик123
> И да, жаль, что ты не точно выполнил моё пожелание:
> > Я бы избавился для начала собственно от SFML)
> > Закомментировать его инклюды и добиться компиляции.
> Здесь же не написано - закомментить Charaster lion(1);
А-а, несколько дел одновременно делаю, подтупливаю.
Да, если убрать всё инклуды библиотеки, всё равно та же ошибка.

Сантик123
> Да, ещё, бывает, пересборка (rebuild) помогает. Вообще её надо делать в первую
> очередь при непонятной ошибке.
Так и делаю :)

Сантик123
> Попробуй her.cpp назвать по другому.
Уже, раньше он по-другому назывался

#11
13:52, 29 мар 2018

(
Тут мои компетенции иссякают.
Проблема, очевидно, в первом варнинге. Два объекта her.obj, второй откидывает (в котором Charaster, видимо), и, соотвественно, не может потом найти твою функцию.
Как это происходит, я ХЗ.

#12
14:32, 29 мар 2018


Сантик123
> (
> Тут мои компетенции иссякают.
> Проблема, очевидно, в первом варнинге. Два объекта her.obj, второй откидывает
> (в котором Charaster, видимо), и, соотвественно, не может потом найти твою
> функцию.
> Как это происходит, я ХЗ.
По-крайней мере выяснили, что SFML не виноват, спасибо!

#13
16:54, 29 мар 2018

Странно, скопировал код, запустил компиляцию:

1>------ Сборка начата: проект: Seraphim_her, Конфигурация: Debug Win32 ------
1>Her.cpp
1>e:\develop\gamedev\seraphim_her\her.cpp(20): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
1>main.cpp
1>Map.cpp
1>Создание кода...
1>Seraphim_her.vcxproj -> E:\Develop\GameDev\Debug\Seraphim_her.exe
1>Сборка проекта "Seraphim_her.vcxproj" завершена.
========== Сборка: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========

У тебя точно все *.cpp файлы в проект включены?

#14
17:52, 29 мар 2018

PA3UJIb
Круто, как раз SFML установлен.

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.