如何使用Visual Studio处理大型非VS代码库
How can I use Visual Studio to work with large non-VS codebase?
我是一个经验丰富的C#开发人员,但对C++知识知之甚少。我已经为自己设置了一个项目,以运行自定义的Firefox构建,并能够从C#代码中控制它。
到目前为止,我已经获得并构建了Firefox源代码,并为exe创建了Visual Studio解决方案。这意味着我现在可以在Visual studio中通过F5运行了。如果我打开一个源文件,我可以设置断点并命中它们。
我不知道如何加载整个源代码,就好像我在使用C#.NET解决方案一样。据我所知,没有Firefox源代码的项目文件,因为它不是windows特定的源代码。我遵循了一个在线示例,该示例建议在VS中使用"现有代码中的项目"选项创建,这导致VS由于文件太多而陷入停顿。
将代码放入一个使编辑、调试和导航源代码变得简单的环境(最好是Visual Studio)的步骤是什么。
注意:到目前为止,我一直在处理的说明如下:https://cs.senecac.on.ca/~david.humphrey/writing/debugging-firefox.html
从你的问题来看,我相信你已经差不多了。你有一个正在工作的版本?这意味着你有:
- 解决方案文件(*.sln)
- 项目文件(*.vcxproj或*.vcproj,取决于您的visual studio版本)
有了这个,最适合我的是这个布局(根据您的需求调整):
- 从你喜欢的根文件夹开始,比如
MyProject
- 在那里创建一个新的Empty解决方案
- 将包含工作构建的文件夹移动到子目录中,如
MyProjectMyCustomFirefox
- 在Visual Studio中"添加现有项目"并找到vcxproj文件
- 在同一个解决方案中,像往常一样,在与FF构建相同级别的目录中创建一个C#项目,如
MyProjectMyFirefoxController
简而言之,解决方案文件在根目录中几乎是单独的,每个项目都在自己的目录中。
您还需要调整构建选项,以便C#项目可以看到输出文件(DLL或EXE)。当你在做的时候,让C#项目依赖于你的Firefox版本:如果你改变了另一个,它会指示msbuild重建一个。我相信这对Express版不起作用。它们是单一的语言。
如果您有一个命令行构建路径,它正在创建一个VS可调试的可执行文件,您可以尝试将所有源文件添加到项目中,但将其标记为"从构建中排除"。然后添加一个"构建后步骤"来调用命令行工具。
您可能需要对项目属性进行更多的调整,才能将命令行输出识别为要调试的输出,但理论上这是可行的。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 为什么我的 VS 代码调试器在我的C++代码周围弹跳?
- 与clang++一起使用的VS代码在构建良好的C++文件中显示错误
- 如何在 WSL 上获取 VS 代码以调试我的C++代码?
- 代码在Visual Studio 2017中不起作用,但在VS代码中工作
- 带有 GDB 调试器的 VS 代码内存视图
- SDL2 不是基于 VS 代码构建的
- VS 代码 C/C++ 智能感知在更新后停止工作
- VS 代码C++问题
- 可视化配置 VS 代码以进行 C++ 编程和开发
- 是 VS 代码 MinGW 与 Win32 中未定义的错误
- 使用.natvis文件可视化VS代码中的C++对象
- 将柯南包含链接到 VS 代码
- 我正在使用 VS 代码,但 cout 不起作用
- 在使用 vs 代码调试文件时,如何将文件传递到我的程序中
- VS代码无法识别包含路径
- 我在 MinGW 和 VS 代码"g++ not recognized as a cmdlet..."时遇到构建错误
- 如何在ubuntu中的vs代码中链接用于c++的fftw3库
- VS 代码C++扩展给出错误"namespace has no member function"
- VS代码/MinGW智能不适用于C++