Как правильно настроить CHAI3D с проектом SDL в Visual Studio 2013
В настоящее время я работаю над проектом, который использует следующие библиотеки:
SDL2, SDL_ttf, SDL_image, SDL_mixer и CHAI3D. Используя библиотеки отдельно, код отлично работает на VS2013. Однако, когда я пытаюсь использовать обе библиотеки в одном проекте, возникает много ошибок. Мне удалось настроить библиотеки SDL, добавив их файлы include и lib в каталоги VC++. Я пытаюсь добавить #include "chai3d.h"
к этому проекту, который я поместил в файлы chai3d-3.1.0\examples....\Project\ C++. Который возвращает:
фатальная ошибка C1083: не удается открыть включаемый файл: 'chai3d.h': нет такого файла или каталога
Поэтому я добавляю в Свойства> Свойства конфигурации> Каталоги VC++> Включить каталоги Путь (../chai3d/src) к папке, содержащей файл "chai3d.h". Это переходит к 2 следующим ошибкам:
фатальная ошибка C1083: не удается открыть включаемый файл: 'Eigen/Eigen': такого файла или каталога нет
Я нахожу этот файл в chai3d/external/(Eigen/Eigen) и добавляю его в каталоги include, и это происходит:
фатальная ошибка C1083: не удается открыть включаемый файл: 'GL/glew.h': такого файла или каталога нет
Обратите внимание, что комментирование включаемых строк или добавление пути из внешней папки приведет к решению проблемы C1083, но приведет к тому, что объекты chai3d не будут распознаны, такие как cHapticDeviceHandler
, Вот часть моих журналов:
ошибка C2062: введите 'float' непредвиденная ошибка C2146
ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C++ не поддерживает default-int
ошибка C2086: "int cVector3d": переопределение, см. объявление "cVector3d"
ошибка C2143: синтаксическая ошибка: отсутствует ',' перед '&'
ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'ch_computeForceSphere'
ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C++ не поддерживает default-int
ошибка C2086: 'int cVector3d': переопределение
ошибка C2143: синтаксическая ошибка: отсутствует ',' перед '&'...
Я был бы очень благодарен за любые подсказки о том, как решить эту проблему.
1 ответ
Поэтому я не уверен насчет полезности совместного использования обеих библиотек (SDL и CHAI3D), поскольку объединение их для создания полезного кода кажется слишком сложным. Однако после некоторого исследования мне удалось найти способ сделать это:
- Сначала вам нужно настроить проект chai3d, а не просто использовать его из папки с примерами, это можно сделать, следуя инструкциям по этой ссылке: CHAI3D: создание приложения.
Затем вам нужно настроить SDL-библиотеки обычным способом, добавив их файлы include и lib в меню "Свойства"> "Свойства конфигурации"> "Каталоги VC++"> "Включить каталоги /Library Directorie".
Наконец, добавьте зависимости в Свойства> Компоновщик> Ввод> Дополнительные зависимости, например, в случае SDL2 вы добавите следующее:
SDL2.lib SDL2Main.lib
Постарайтесь быть осторожным в отношении пути SDL и необходимости:
#include <SDL.h>
or
#include <SDL2/SDL.h>