![C++服务器开发精髓](https://wfqqreader-1252317822.image.myqcloud.com/cover/623/39479623/b_39479623.jpg)
2.3 使用Visual Studio管理和阅读开源项目代码
Visual Studio 提供了强大的 C/C++项目开发和管理能力,本节介绍如何使用 Visual Studio管理C/C++开源项目,这里以Redis项目为例。
启动Visual Studio,新建一个空的Win32控制台程序,在工程建好后关闭该工程,因为接下来需要移动这些文件。
![](https://epubservercos.yuewen.com/EE4394/20637464301305906/epubprivate/OEBPS/Images/41263_101_1.jpg?sign=1738936285-rtFaxbUI3DHFZWrs1eoxQAJliknBQfDT-0-ba718d77debdfdec33e8ab620999a63a)
这样会在Redis源码目录下根据我们设置的名称生成一个文件夹(这里是redis-6.0.3),将该文件夹中的所有文件都复制到Redis源码根目录下,然后删掉生成的这个文件夹。
![](https://epubservercos.yuewen.com/EE4394/20637464301305906/epubprivate/OEBPS/Images/41263_102_1.jpg?sign=1738936285-CSLH0KwAaIAn6aNltVhwMo2JPhQssP5F-0-8d788b097e53b5dfa42ff411bf7e2efe)
再次用Visual Studio打开redis-6.0.3.sln文件,然后在解决方案资源管理器视图中单击显示 ALL Files 按钮并保持该按钮为选中状态(如果找不到解决方案资源管理器视图,则可以在“视图”菜单中打开,组合键为Ctrl+Alt+L)。
![](https://epubservercos.yuewen.com/EE4394/20637464301305906/epubprivate/OEBPS/Images/41263_102_2.jpg?sign=1738936285-fXaCyeHJ1iuQMnlk10qNVlFvdG0Xm9zd-0-24b51d176894437c9606374ff6d95349)
然后选中所有需要添加到解决方案中的文件,单击鼠标右键选择“Include In Project”菜单即可,如果文件较多,则Visual Studio可能需要一会儿才能完成。为了减少等待时间,也可以一批一批地添加。
![](https://epubservercos.yuewen.com/EE4394/20637464301305906/epubprivate/OEBPS/Images/41263_103_1.jpg?sign=1738936285-DU4BN9MGcsw5Ptb6eN670TWPQu4lugOE-0-3ff757c4ff7de06ccc6d1411c7f47cd6)
接着选择“文件”菜单的“全部保存”菜单项保存即可(组合键为Ctrl+Shift+S),最终效果如下图所示。
![](https://epubservercos.yuewen.com/EE4394/20637464301305906/epubprivate/OEBPS/Images/41263_103_2.jpg?sign=1738936285-TZ82oNSuFwnhVR9puOErbFcXFDUPoGVT-0-b79b36225122aedf9464e395727d62ed)
这样我们就能利用Visual Studio强大的功能管理和阅读我们的源码了。
对于Linux系统下的一些项目,虽然阅读和编辑代码时可以使用Visual Studio,但是编译和调试这些项目时还是建议将其放到Linux系统上。例如笔者虽然使用Visual Studio管理和阅读Redis源码,但编译和调试Redis还是使用Linux系统(使用gcc编译并使用gdb调试)。
注意:在C/C++开源项目中一般使用各种宏去条件编译一些代码,在实际生成的二进制文件中不一定包含这些代码,所以在Visual Studio中看到的某段代码的行号与在gdb中调试的实际代码行号不一定相同,在给某一行代码设置断点时,请以gdb中通过list命令看到的代码行号为准。