2012-02-12 150 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,並保留特定組件的所有頭文件,其他組件將在預定義位置使用。其他組件可以隨時看這個地方。告訴組件在哪裏尋找這些依賴關係是沒有錯的

相關問題