如何在 Visual Studio 中集成项目
How to integrate projects in Visual Studio
经过几个星期努力整合各种项目,我仍然不知道如何正确地做。
注意:我在下面的例子中 link 的 hyperlink 是 GIT/SVN
的克隆地址
例如,我有 Irrlict's demo project, and I wanna play sound in the project, so I choose USE_SDL_MIXER (I define that in Demo project), I clone SDL and SDL Mixer,然后我意识到要构建 SDL Mixer,我必须将 SDL 集成到 SDL Mixer 项目中 - 我不知道如何操作。要在 Irrlict 的演示中使用 USE_SDL_MIXER 定义,我必须将 SDL 和 SDL Mixer 集成到 Irrlicht 项目中——我被困在这里了。
找到2.2编译中说的doc of SDL Mixer
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 以便我可以 link 它们?
项目整合
集成示例:SDL、SDL Mixer、Irrlicht 的演示项目(克隆这些项目的日期:29/07/2017)
1.照顾 SDL:构建 SDL
1.1。使用CMake生成项目,构建项目,我假设你知道如何做到这一点。
2。照顾 SDL Mixer:将 SDL 集成到 SDL Mixer
2.1。用 Visual Studio 打开文件 SDL_mixer.sln(我的是 Visual Studio 2015)
2.2。为 SDL 包含文件夹设置附加包含目录
2.2.1。右键单击项目 SDL_mixer 并选择属性 (Alt+Enter)
2.2.2。选择C/C++(注意:将平台设置为所有平台)
2.2.3。选择其他包含目录
2.2.4。为Additional Include Directories添加SDL include文件夹(SDL项目的include文件夹)
2.2.5。单击确定... - 现在您已成功设置附加包含目录。到目前为止,像这样的错误:[无法打开包含文件:'SDL_loadso.h':没有这样的文件或目录SDL2_mixer]应该已经消失了。构建项目 SDL2_mixer,您应该会收到新错误:[LNK1104 无法打开文件 'SDL2.lib' SDL2_mixer],我们将在下一步中解决该问题。
2.3。为 SDL 输出文件夹设置附加库目录
2.3.1。在 SDL2_mixer 属性对话框中,选择链接器(注意:将平台设置为所有平台)
2.3.2。选择其他库目录
2.3.3。为附加库目录添加 SDL 输出文件夹(该文件夹包含文件 SDL2.lib 在您构建项目 SDL2 后)
2.3.4。单击确定...
2.4。现在在SDL_mixer解决方案中构建其他项目(native_midi,胆小),有了步骤2.2,2.3的经验,你可以很好地构建这些项目。
2.5。再次构建项目SDL_mixer,此时应该构建成功了。
3。关注 Irrlicht 的 Demo 项目:Integrate SDL and SDL mixer into this Demo project
3.1。打开包含演示项目的 BuildAllExamples_vcXX.sln(我使用 Visual Studio 2015,所以我打开文件 ..\trunk\examples\BuildAllExamples_vc14.sln)
3.2。首先,构建 Irrlicht 项目。
3.3。现在你的目的是在这个演示项目中播放一些声音,所以取消注释代码:文件中的#define USE_SDL_MIXER..\trunk\examples\Demo\CDemo.h
3.4。为 SDL 包含文件夹设置附加包含目录(参考步骤 2.2)
3.5。再次构建 Demo 项目,您可能会遇到类似 [无法打开源文件 "SDL/SDL.h" Demo] 的错误,要解决此问题,请在文件 CDemo.h 中将 [#include 和 #include] 更改为 [#include [=125] =]和#include "SDL_mixer.h"]
3.6。再次构建 Demo 项目,您可能会遇到类似 [Error C2664 'SDL_RWops *SDL_RWFromFile(const char *,const char *)': cannot convert argument 1 from 'irr::core::string>' to 'const char *' Demo] 的错误,要修复此问题,请在文件 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。构建 Demo 项目,你应该有错误 [Error LNK2019 unresolved external symbol _SDL_RWFromFile referenced in function "private: void __thiscall CDemo::startSound(void)" (?startSound@CDemo@@AAEXXZ) Demo] 我们在下一步中修复这些错误
3.8。为附加依赖项设置 SDL2.lib 和 SDL2_mixer.lib
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 文件夹设置附加库目录。
3.11。再次构建Demo工程,应该构建成功了。
3.12。按 F5 到 运行 演示项目,你应该会得到这样的错误: The program can't start because SDL2.dll is missing …ect….只需将文件 SDL2.dll 和 SDL2_mixer.dll 复制到演示项目的输出目录中(构建名为 Demo.exe 的文件所在的位置,在我的例子中:..\trunk\bin\Win32-VisualStudio)
3.13。再次按 F5,尽情享受吧。
结论:
在这整个循序渐进的教程中,您只需了解以下步骤:2.2、2.3、3.8。这些是整个事情的核心。所以关键词是:Additional Include Directories, Additional Library Directories, Additional Dependencies
此外,如果上面这些文字让您感到厌烦,您可以查看此视频:https://youtu.be/0TlVpiQbFiE(视频标题 SDL 2 Made Easy Tutorial 19 - Mixer [Sound & Music]),该视频不是本教程,而是你可以看到如何设置附加库目录等,...
PS:抱歉,我确实尝试格式化答案以便于查看,但是这是我能格式化的最好的答案。
经过几个星期努力整合各种项目,我仍然不知道如何正确地做。
注意:我在下面的例子中 link 的 hyperlink 是 GIT/SVN
的克隆地址例如,我有 Irrlict's demo project, and I wanna play sound in the project, so I choose USE_SDL_MIXER (I define that in Demo project), I clone SDL and SDL Mixer,然后我意识到要构建 SDL Mixer,我必须将 SDL 集成到 SDL Mixer 项目中 - 我不知道如何操作。要在 Irrlict 的演示中使用 USE_SDL_MIXER 定义,我必须将 SDL 和 SDL Mixer 集成到 Irrlicht 项目中——我被困在这里了。
找到2.2编译中说的doc of SDL Mixer
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 以便我可以 link 它们?
项目整合
集成示例:SDL、SDL Mixer、Irrlicht 的演示项目(克隆这些项目的日期:29/07/2017)
1.照顾 SDL:构建 SDL
1.1。使用CMake生成项目,构建项目,我假设你知道如何做到这一点。
2。照顾 SDL Mixer:将 SDL 集成到 SDL Mixer
2.1。用 Visual Studio 打开文件 SDL_mixer.sln(我的是 Visual Studio 2015)
2.2。为 SDL 包含文件夹设置附加包含目录
2.2.1。右键单击项目 SDL_mixer 并选择属性 (Alt+Enter)
2.2.2。选择C/C++(注意:将平台设置为所有平台)
2.2.3。选择其他包含目录
2.2.4。为Additional Include Directories添加SDL include文件夹(SDL项目的include文件夹)
2.2.5。单击确定... - 现在您已成功设置附加包含目录。到目前为止,像这样的错误:[无法打开包含文件:'SDL_loadso.h':没有这样的文件或目录SDL2_mixer]应该已经消失了。构建项目 SDL2_mixer,您应该会收到新错误:[LNK1104 无法打开文件 'SDL2.lib' SDL2_mixer],我们将在下一步中解决该问题。
2.3。为 SDL 输出文件夹设置附加库目录
2.3.1。在 SDL2_mixer 属性对话框中,选择链接器(注意:将平台设置为所有平台)
2.3.2。选择其他库目录
2.3.3。为附加库目录添加 SDL 输出文件夹(该文件夹包含文件 SDL2.lib 在您构建项目 SDL2 后)
2.3.4。单击确定...
2.4。现在在SDL_mixer解决方案中构建其他项目(native_midi,胆小),有了步骤2.2,2.3的经验,你可以很好地构建这些项目。
2.5。再次构建项目SDL_mixer,此时应该构建成功了。
3。关注 Irrlicht 的 Demo 项目:Integrate SDL and SDL mixer into this Demo project
3.1。打开包含演示项目的 BuildAllExamples_vcXX.sln(我使用 Visual Studio 2015,所以我打开文件 ..\trunk\examples\BuildAllExamples_vc14.sln)
3.2。首先,构建 Irrlicht 项目。
3.3。现在你的目的是在这个演示项目中播放一些声音,所以取消注释代码:文件中的#define USE_SDL_MIXER..\trunk\examples\Demo\CDemo.h
3.4。为 SDL 包含文件夹设置附加包含目录(参考步骤 2.2)
3.5。再次构建 Demo 项目,您可能会遇到类似 [无法打开源文件 "SDL/SDL.h" Demo] 的错误,要解决此问题,请在文件 CDemo.h 中将 [#include 和 #include] 更改为 [#include [=125] =]和#include "SDL_mixer.h"]
3.6。再次构建 Demo 项目,您可能会遇到类似 [Error C2664 'SDL_RWops *SDL_RWFromFile(const char *,const char *)': cannot convert argument 1 from 'irr::core::string>' to 'const char *' Demo] 的错误,要修复此问题,请在文件 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。构建 Demo 项目,你应该有错误 [Error LNK2019 unresolved external symbol _SDL_RWFromFile referenced in function "private: void __thiscall CDemo::startSound(void)" (?startSound@CDemo@@AAEXXZ) Demo] 我们在下一步中修复这些错误
3.8。为附加依赖项设置 SDL2.lib 和 SDL2_mixer.lib
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 文件夹设置附加库目录。
3.11。再次构建Demo工程,应该构建成功了。
3.12。按 F5 到 运行 演示项目,你应该会得到这样的错误: The program can't start because SDL2.dll is missing …ect….只需将文件 SDL2.dll 和 SDL2_mixer.dll 复制到演示项目的输出目录中(构建名为 Demo.exe 的文件所在的位置,在我的例子中:..\trunk\bin\Win32-VisualStudio)
3.13。再次按 F5,尽情享受吧。
结论:
在这整个循序渐进的教程中,您只需了解以下步骤:2.2、2.3、3.8。这些是整个事情的核心。所以关键词是:Additional Include Directories, Additional Library Directories, Additional Dependencies
此外,如果上面这些文字让您感到厌烦,您可以查看此视频:https://youtu.be/0TlVpiQbFiE(视频标题 SDL 2 Made Easy Tutorial 19 - Mixer [Sound & Music]),该视频不是本教程,而是你可以看到如何设置附加库目录等,...
PS:抱歉,我确实尝试格式化答案以便于查看,但是这是我能格式化的最好的答案。