Visual Studio 2010: работа с несколькими проектами C ++ - PullRequest
1 голос
/ 12 февраля 2012

Я работаю над проектом игрового движка на C ++ с VS2010.У нас есть один основной проект, OgreProject, который включает в себя некоторые вещи Ogre3D для рендеринга.Затем у нас есть проект библиотеки классов под названием AudioLibrary.AudioLibrary использует fmod и включает в себя соответствующие заголовки и библиотеки.Проблема возникает, когда класс в OgreProject хочет использовать SoundPlayer.h в AudioLibrary.Затем OgreProject не знает, где находится #include.Неправильно сообщать OgreProject, где находится fmod, поскольку он не будет напрямую использовать эти заголовки.Как правильно использовать заголовочные файлы из AudioLibrary в OgreProject без знания OgreProject?

Ответы [ 3 ]

1 голос
/ 12 февраля 2012

Нет правильного пути. У одной библиотеки нет волшебного способа узнать о другой библиотеке; Вы должны настроить их, чтобы сделать это. Если вы поместите их в одно и то же решение, вы можете добавить один проект к другому в качестве ссылки на проект.

0 голосов
/ 24 февраля 2012

Вам, вероятно, следует определить иерархию для всех компонентов вашего проекта и сохранить все файлы заголовков определенного компонента, которые другие компоненты будут использовать в заранее определенном месте.Другие компоненты всегда могут посмотреть на это место.Нет ничего плохого в том, чтобы указывать компонентам, где явно искать эти зависимости

0 голосов
/ 24 февраля 2012

Вы можете попробовать идиому Pimpl (или шаблон).

Это позволит вам удалить все, что связано с fmod из заголовочного файла вашего проекта. Заголовкам fmod понадобятся только файлы реализации, а не клиентские проекты.

См. этот ответ , в котором объясняются преимущества.

...