Доброго времени суток!
Я пишу проект на C++ и использую библиотеку SFML 2.3.2 C++(Она работает нормально)
Также использую Windows XP и Visual Studio 2010 C++(!)
Понадобилась новая дополнительная внешняя библиотека
sfml-tmx-loader. Загрузил её с гитхаба. Пробую подключить к проекту - ошибок компиляции > 100! (Привожу ошибки) В readme указанно, что минимальные требования: C++11. Очень бы хотелось, чтобы проблема оказалась в версии Студии или Windows. Но скорее всего дело всё-таки в неправильном подключении sfml-tmx-loader или zlib.
Я подключал так:
0) Загрузил скомпилировынный zlib с офф сайта сюда: C:\Libs\zlib128
1) Загрузил sfml-tmxloader сюда C:\Libs\sfml-tmxloader
В проекте Visual Studio:
2) проект - свойства *название* - C/C++ - общие - дополнительные каталоги включаемых файлов: C:\Libs\SFML-2.3.2\include;C:\Libs\sfml-tmxloader\include;C:\Libs\zlib128\i nclude
3) проект - свойства *название* - компоновщик - общие - дополнительные каталоги библиотек: C:\Libs\SFML-2.3.2\lib;C:\Libs\zlib128\lib
4) проект - свойства *название* - компоновщик - ввод: zdll.lib;sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;sfml-audio-d.lib;(далее идут стандартные включаемые файлы, я их не изменял)
5) проект - существующий элемент: через "Обзор" подключаю все файлы из C:\Libs\sfml-tmxloader\include
6) проект - существующий элемент: через "Обзор" подключаю все файлы из C:\Libs\sfml-tmxloader\src
7) проект - существующий элемент: через "Обзор" подключаю все файлы из C:\Libs\zlib128\include
8) проект - существующий элемент: через "Обзор" подключаю файл zdll.lib из каталога C:\Libs\zlib128\lib
9) Файл zlib1.dll из папки C:\Libs\zlib128 скопировал в папку с выходным exe-файлом. (D:\Мои документы\Visual Studio 2010\Projects\sfmltest2\Debug)
Нажимаю F5 получаю море ошибок:(привести все ошибки не получится - не позволяет форум)
1>------ Построение начато: проект: sfmltest2, Конфигурация: Debug Win32 ------
1>Построение начато 31.05.2016 22:58:25.
1>InitializeBuildStatus:
1> Обращение к "Debug\sfmltest2.unsuccessfulbuild" .
1>ClCompile:
1> main.cpp
1>c:\libs\sfml-tmxloader\include\tmx\mapobject.h(7 1): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\mapobject.h(1 89): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\quadtreenode. h(83): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\maplayer.h(41 ): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\maplayer.h(55 ): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\maplayer.h(95 ): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 4): error C2332: enum: отсутствует имя тега
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 5): error C2236: непредвиденные "class" "tmx::MapOrientation". Возможно, отсутствует ";"
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 5): error C3381: tmx::MapOrientation: спецификаторы доступа к сборке доступны только в коде, скомпилированном с параметром /clr
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 6): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 9): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(4 9): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\libs\sfml-tmxloader\include\tmx\maploader.h(5 1): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1> tmx2box2d.cpp
1>c:\libs\sfml-tmxloader\include\tmx\mapobject.h(7 1): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\mapobject.h(1 89): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\tmx2box2d.h(3 9): fatal error C1083: Не удается открыть файл включение: Box2D/Dynamics/b2World.h: No such file or directory
1> QuadTreeNode.cpp
1>c:\libs\sfml-tmxloader\include\tmx\mapobject.h(7 1): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\mapobject.h(1 89): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\include\tmx\quadtreenode. h(83): error C2470: final: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(53): error C2027: использование неопределенного типа "tmx::QuadTreeRoot"
1> c:\libs\sfml-tmxloader\include\tmx\quadtreenode. h(83): см. объявление "tmx::QuadTreeRoot"
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(55): error C2065: m_objects: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(55): error C2228: выражение слева от ".clear" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(56): error C2065: m_children: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(56): error C2228: выражение слева от ".clear" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(57): error C2065: m_bounds: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(58): error C2065: m_debugShape: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(58): error C2228: выражение слева от ".setPosition" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(59): error C2065: m_debugShape: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(59): error C2228: выражение слева от ".setSize" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(61): error C2065: m_searchDepth: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(62): error C2065: m_depth: необъявленный идентификатор
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(79): error C2143: синтаксическая ошибка: отсутствие "," перед ":"
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(79): error C2530: child: ссылки должны быть инициализированы
1>c:\libs\sfml-tmxloader\src\quadtreenode.cpp(79): error C3531: child: символ, тип которого содержит спецификатор "auto" должен иметь инициализатор