2012-02-12 147 views
1

我正在使用VS2010在C++中使用游戏引擎项目。我们有一个主要项目,OgreProject,其中包括一些Ogre3D渲染的东西。然后,我们有一个名为AudioLibrary的类库项目。 AudioLibrary使用fmod,并包含适当的头文件和库文件。当OgreProject中的类想要在AudioLibrary中使用SoundPlayer.h时会出现问题。然后,OgreProject不知道#include在哪里。因为它不会直接使用这些头文件,所以告诉OgreProject fmod的位置是错误的。在OgreProject中使用来自AudioLibrary的头文件,而OgreProject不知道什么是正确的方法?Visual Studio 2010:使用多个C++项目

回答

1

没有正确的方法。一家图书馆没有了解其他图书馆的神奇方式;你必须配置他们这样做。如果你把它们放在同一个解决方案中,你可以添加一个项目作为项目参考。

+0

不幸的是,我的问题中最后一个词似乎已经消失。它应该阅读“什么是从OgreProject的AudioLibrary中使用头文件的正确方法,而OgreProject不知道Fmod?”。 – user1205407 2012-02-14 07:28:01

+0

现在,我在AudioLibrary和Ogreproject中为fmod添加了“额外的头文件”,Ogreproject引用了Audiolibrary。在我看来,当我从不直接在Ogreproject中使用fmod时,我不必在两个项目中都重复项目属性。也许这只是我习惯于更现代化的语言。无论如何,谢谢你的回答。 – user1205407 2012-02-14 07:30:59

0

你可以尝试Pimpl成语(或模式)。

它会让你从项目的头文件中删除与fmod相关的所有内容。只有实施文件需要fmod标题,而不是客户端项目。

请参阅this answer其中解释了好处。

0

您应该为项目的所有组件定义一个heirarchy,并保留特定组件的所有头文件,其他组件将在预定义位置使用。其他组件可以随时看这个地方。告诉组件在哪里寻找这些依赖关系是没有错的

相关问题