2017-07-29 120 views
0

經過幾個星期的努力來整合各種項目,我仍然不知道如何正確地做到這一點。如何在Visual Studio中集成項目

注:超鏈接,我鏈接以下面的例子,是克隆地址GIT/SVN

例如,我有Irrlict's demo project,我想在項目中發揮的聲音,所以我選擇USE_SDL_MIXER(我在Demo項目中定義),我克隆SDLSDL Mixer,然後我意識到要構建SDL混音器,我必須將SDL整合到SDL混音器項目 - 我不知道如何。要在Irrlict的演示中使用USE_SDL_MIXER定義,我必須將SDL和SDL混音器集成到Irrlicht項目中 - 我在這裏卡住了。

我發現doc of SDL Mixer 2.2中所述代碼

To link with SDL_mixer you should use sdl-config to get the required SDL compilation options.

而且我完全沒有理想的那是什麼是。

總之,我只是想知道如何在Visual Studio中正確地集成項目 - 請告訴我一步一步的教程,因爲我不是很聰明。如果我創建了我的新項目,請放入C:\ MyProject \ MyProject.sln,但SDK(如Irrlict,SDL,SDL Mixer)放在D:\ GitAndSvn \ SDK中。我是否需要將這些SDK複製到C:\ MyProject,以便我可以將它們鏈接起來?

+1

您的演示項目鏈接已死亡。 SDL_mixer已經包含一個VS項目文件,其中包含編譯器選項,因此您不需要運行sdl-config。我建議找到一個與VS完成SDL集成的示例項目。否則,通常您會創建1個解決方案並添加全部3個項目。您不需要複製源代碼,只需添加項目即可。將演示項目的「其他包含目錄」設置爲SDL頭的位置。然後右鍵單擊 - >添加 - >參考 - >添加新參考,然後選擇其他2個項目。 – stijn

+0

@stijn:我很抱歉演示中斷鏈接(實際上,它是項目文件的svn鏈接,它並沒有死 - 我認爲它可以單獨訪問,但它不能),所以我用Irrlicht源代替它位置。 – 123iamking

+0

@stijn:我曾嘗試爲SDL Mixer項目添加['Additional Include Directories'SDL include folder],併爲SDL Mixer添加參考[SDL項目],但SDL Mixer仍然有如下錯誤:無法打開源文件「SDL_loadso」。 h「,.. – 123iamking

回答

0

項目整合

實例集成:SDL,SDL攪拌機,Irrlicht的的演示項目(日期克隆這些項目:29/07/2017)

1。注意SDL的:建立SDL

1.1。使用CMake生成項目,並構建項目,我假設你知道如何做到這一點。

2.注意SDL調音臺:集成SDL到SDL攪拌機

2.1。用Visual Studio打開文件SDL_mixer.sln(我的是Visual Studio 2015)

2.2。對於SDL設置附加包含目錄包括文件夾

Additional Include Directories

2.2.1。右鍵單擊項目SDL_mixer並選擇屬性(Alt + Enter)

2.2.2。選擇C/C++(注意:將平臺設置爲所有平臺)

2.2.3。選擇其他包含目錄

2.2.4。爲其他包含目錄(SDL項目的包含文件夾)添加SDL包含文件夾

2.2.5。點擊確定... - 現在您已成功設置其他包含目錄。現在,錯誤如下:[無法打開包含文件:'SDL_loadso.h':沒有這樣的文件或目錄SDL2_mixer]應該消失。建立項目SDL2_mixer,你應該得到新的錯誤:[LNK1104無法打開文件'SDL2.lib'SDL2_mixer],我們要解決這個問題,下一步。

2.3。設置附加庫目錄的SDL輸出文件夾

Additional Library Directories

2.3.1。在SDL2_mixer屬性對話框中,選擇連接器(注意:將平臺設置爲所有平臺)

2.3.2。選擇附加庫目錄

2.3.3。爲其他庫目錄添加SDL輸出文件夾(生成SDL2項目後,該文件夾包含文件SDL2.lib)

2.3.4。點擊確定...

2.4。現在用SDL_mixer解決方案(native_midi,timidity)構建其他項目,並使用步驟2.2,2.3的經驗,您可以很好地構建這些項目。

2.5。再次構建項目SDL_mixer,您現在應該成功構建它。

3.請注意Irrlicht的的演示項目:整合SDL和SDL混頻器到這個示範項目

3.1。打開包含Demo項目的BuildAllExamples_vcXX.sln(我使用Visual Studio 2015,因此我打開文件.. \ trunk \ examples \ BuildAllExamples_vc14.sln)

3.2。首先,建立Irrlicht項目。

3.3。現在你的目的是在這個Demo項目中播放一些聲音,取消註釋代碼:#define USE_SDL_MIXER在文件.. \ trunk \ examples \ Demo \ CDemo.h中

3.4。用於SDL設置附加包含目錄包括文件夾(參照步驟2.2)

Additional Include Directories for SDL include folder

3.5。重新構建Demo項目,可能會出現[無法打開源文件「SDL/SDL.h」Demo]的錯誤,要解決此問題,請在文件CDemo.h中將[#include和#include]更改爲[#include] SDL。 h「和#include」SDL_mixer.h「]

3.6。再次構建Demo項目,可能會出現如下錯誤:[Error C2664'SDL_RWops * SDL_RWFromFile(const char *,const char *)':不能將參數1從'irr :: core :: string'轉換爲'const char *'在文件CDemo.cpp中,更改[ballSound = Mix_LoadWAV(mediaPath +「ball.wav」);和impactSound = Mix_LoadWAV(mediaPath +「impact.wav」);]到[ballSound = Mix_LoadWAV((mediaPath +「ball.wav」)。c_str());和impactSound = Mix_LoadWAV((mediaPath +「impact.wav」)。c_str());]

3.7。建立演示項目,你應該有錯誤[錯誤LNK2019未解析的外部符號_SDL_RWFromFile在函數中引用「private:void __thiscall CDemo :: startSound(void)」(?startSound @ CDemo @@ AAEXXZ)Demo]我們修復了這些錯誤步驟

3.8。設置SDL2.lib和SDL2_mixer.lib的附加依賴

Additional Dependencies

3.8.1。選擇連接器>輸入

3.8.2。選擇附加依存關係

3.8.3。添加SDL2.lib和SDL2_mixer.lib。

3.9。創建一個名爲SDL_lib文件夾,然後把下面的文件放到這個文件夾

•SDL2.lib

•SDL2_mixer.lib

3.10。爲剛剛創建的SDL_lib文件夾設置其他庫目錄。

Additional Library Directories for the SDL_lib folder

3.11。再次構建Demo項目,現在您應該成功構建它。

3.12。點擊F5運行Demo項目,你應該得到這樣的錯誤:程序無法啓動,因爲SDL2.dll丟失......等等。只需將SDL2.dll和SDL2_mixer.dll文件複製到Demo項目的輸出目錄下(其中名爲Demo.exe的文件位於我的情況下:.. \ trunk \ bin \ Win32-VisualStudio)

3.13。再次擊中F5,並享受。

結論:

在這整個教程一步一步,你只需要明白的步驟:2.2,2.3,3.8。這是整個事情的核心。所以關鍵詞是:附加包含目錄附加庫目錄附加依賴​​

此外,您還可以檢查這個視頻,如果這些文字上面無聊你:https://youtu.be/0TlVpiQbFiE(視頻標題SDL 2一點通教程19 - 混音器[聲音&音樂]),視頻不是這個教程,但你可以看到如何設置其他庫目錄,等...

PS:對不起,我嘗試格式化答案,使其更容易看,但這是最好的,我可以格式化答案。

相關問題