如何将 msvc CL /DEBUG 与 visual studio devenv /DebugExe 集成

How to integrate msvc CL /DEBUG with visual studio devenv /DebugExe

我在命令行上使用 msvc (visual studio cl.exe) 来编译我的一个 c++ 项目。

为此,我使用 Visual Studio Community 2019 开发者控制台 在 cmd 中,我通过调用初始化我的环境:

call "%ProgramFiles(x86)%\Microsoft Visual Studio19\Community\Common7\Tools\VsDevCmd.bat"
call "%ProgramFiles(x86)%\Microsoft Visual Studio19\Community\VC\Auxiliary\Build\vcvars32.bat" 

然后我编译我的代码:

cl /DEBUG main.cpp SDL2-2.0.14\lib\x86\SDL2.lib portaudio_x86.lib /IPortAudio\include /ISDL2-2.0.14\include

通常,我可以 运行 我的程序只需调用

main.exe

但是如果我想在visual studio中调试它,我使用

devenv /DebugExe main.exe

在 visual studio 中,在我点击顶部工具栏中的“▶️start”后,程序会 运行 正常,但是当我遇到异常时,符号不会加载。例如:

如何让Visual Studio正确加载符号文件并显示错误的行号

谢谢,

麦克

总结问题评论中提供的答案:

编译和 linking 必须一步完成,因为可执行文件是在 visual studio 项目之外编译的:

编译和link:

cl /Zi /EHsc <compiler options> <source files> /link <linker options> <library and resource files>

调试:

devenv /DebugExe <executable>