Как правильно настроить 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), поскольку объединение их для создания полезного кода кажется слишком сложным. Однако после некоторого исследования мне удалось найти способ сделать это:

  1. Сначала вам нужно настроить проект chai3d, а не просто использовать его из папки с примерами, это можно сделать, следуя инструкциям по этой ссылке: CHAI3D: создание приложения.
  2. Затем вам нужно настроить SDL-библиотеки обычным способом, добавив их файлы include и lib в меню "Свойства"> "Свойства конфигурации"> "Каталоги VC++"> "Включить каталоги /Library Directorie".

  3. Наконец, добавьте зависимости в Свойства> Компоновщик> Ввод> Дополнительные зависимости, например, в случае SDL2 вы добавите следующее:

SDL2.lib
SDL2Main.lib

Постарайтесь быть осторожным в отношении пути SDL и необходимости:

 #include <SDL.h>
 or
 #include <SDL2/SDL.h>
Другие вопросы по тегам