Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2016, 12:32   #1
kintel
Пользователь
 
Регистрация: 08.06.2016
Сообщений: 11
По умолчанию Подключение библиотеки к Visual Studio C++

Доброго времени суток!
Я пишу проект на 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" должен иметь инициализатор
kintel вне форума Ответить с цитированием
Старый 18.06.2016, 12:46   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Скорее всего в VS 2010 недостаточно С++11, судя по первым ошибкам.
VS11 == VS2012
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.06.2016, 13:11   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Requirements
Minimal C++11 compiler support (tested with VS11 and GCC4.7)
В 10ке они старый стандарт начали выправлять, а уже о С++11 там можно было только думать...
p51x вне форума Ответить с цитированием
Старый 18.06.2016, 14:28   #4
kintel
Пользователь
 
Регистрация: 08.06.2016
Сообщений: 11
По умолчанию

Да, спасибо. Хотя я читал у майкрософта документацию по VS 2010, видимо не понял, что С++ 11 не поддерживается. Буду сегодня устанавливать Windows 7. Какую новую студию из подходящих лучше взять? На выбор, как я понимаю VS 11, 12, 13, 15.
kintel вне форума Ответить с цитированием
Старый 18.06.2016, 15:44   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В студии номера не соответствуют годам.
10 == 2010
11 == 2012
12 == 2013
14 == 2015
15 не существует.

Из С++11 в 2010 очень малая часть есть, дальше лучше.

http://en.cppreference.com/w/cpp/compiler_support

В ридми проекта ж написано, что в 2012 работает, так что минимум ее. А так конечно лучше 2015. Там еще есть бесплатное Community издание (аналог Про)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.06.2016, 13:39   #6
kintel
Пользователь
 
Регистрация: 08.06.2016
Сообщений: 11
По умолчанию

Всем спасибо!
Проблема решена: Я установил Visual Studio 2015 Community. Попробовал подключить проблемную библиотеку tmx-map-loader. Выскочило всего пара ошибок связанных с кодировками. Тогда я в Проект - свойства "имя проекта" - свойства конфигурации - основные - набор символов - переключил с многобайтовой кодировки на кодировку Юникод. Всё заработало без ошибок.

PS: Пользователям Windows XP с подобной проблемой придётся переходить хотя бы на Windows 7 (чтобы установить подходящую версию Студии).
kintel вне форума Ответить с цитированием
Старый 25.06.2016, 17:20   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
PS: Пользователям Windows XP с подобной проблемой придётся переходить хотя бы на Windows 7 (чтобы установить подходящую версию Студии).
Или использовать gcc.
p51x вне форума Ответить с цитированием
Старый 28.06.2016, 13:35   #8
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от kintel Посмотреть сообщение
PS: Пользователям Windows XP с подобной проблемой придётся переходить хотя бы на Windows 7 (чтобы установить подходящую версию Студии).
в опциях компилятора выбирайте тулчейн:
"с поддержкой xp".

и никому ничего не придется.
_Bers вне форума Ответить с цитированием
Старый 28.06.2016, 14:47   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не, сама студия не встанет на ХР. Речь вроде не о пользователях программы автора.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение ansys в visual studio elf01 Visual C++ 0 27.12.2014 20:07
Подключение бд Oracle к ms visual studio 2010 на c#. dima1257 C# (си шарп) 3 18.12.2013 16:42
Подключение БД - отсутствует DataBase (Visual Studio C++) oasis Помощь студентам 1 14.12.2011 18:53
библиотеки в visual studio VAnj2607 Visual C++ 4 14.04.2011 10:04
Установка библиотеки в Microsoft Visual Studio 9.0 blackox Помощь студентам 0 07.07.2010 12:58