SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › tiled map editor и level.h
В этой теме 6 ответов, 4 участника, последнее обновление Бек 7 года/лет, 8 мес. назад.
-
АвторСообщения
-
Есть проект, в котором помимо подключенных библиотек 3 файла: main.cpp, game.h, game.cpp. Не получается объявить объект Level (из библиотеки level.h) в классе Game (находится в файле game.h). Точнее могу, но если нет файла game.cpp.
main.cpp
C++1234567#include "game.h"int main(){Game game;return 0;}game.h
C++12345678910#include "level.h"class Game{public:Game();~Game();private:Level lev;};game.cpp
C++1234567#include "game.h"Game::Game(){}Game::~Game(){}Если попробовать скопмилировать, выдает:
Error 24 error LNK1169: one or more multiply defined symbols found
И еще 9 ошибок приблизительно одинакового содержания:
Error 23 error LNK2005: “public: bool __thiscall Level::LoadFromFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)” (?LoadFromFile@Level@@QAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in game.obj
При этом если удалить файл game.cpp, а в game.h сделать
C++12345678910#include "level.h"class Game{public:Game();~Game();private:Level lev;};То все компилируется. Не могу понять в чем разница и почему в первом случае выдает ошибку. Удалил все с игры, оставил только те строки что указал, вроде уже ничего лишнего, но все равно что-то не так.
Ошибка вышла, в конце код в game.h должен быть таким.
C++12345678910#include "level.h"class Game{public:Game(){}~Game(){}private:Level lev;};
<div id=”crayon-56ea78dada24f147981421-1″ class=”crayon-line”></div>Почитай про include guard
Спасибо за ссылку. Я пробовал <span id=”trestrictions_correct”>pragma once, не помогло, думаю что и include guard не поможет, но попробую ради интереса. Из википедии “То есть,
#pragma once
применяется для тех же целей, что и include guard, но требует меньше кода и не допускает возможности коллизии имён.”</span>А вообще я вышел из этой ситуации скачав подобный файл библиотеки с habrahabr
Я скачал Tiled map editor 0.16 , но в нем нет Xml, незнаете почему?!
да, я тоже скачал и там нету. видимо они выпилили этот формат из программы. попробуй скачать более старые версии
Кстати нашел там есть! Сперва надо создать а потом в настроийке карт можно поменять в xml!
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.