Panda3d,使用MSVC debug

这一篇基于文章Panda3d,MSVC下编译第一个窗口应用。在第一个应用上,如果我们在main.cpp上下断点,然后按下F5启用debug的话,断点会被禁用,也就没有办法进行调试,因为整个工程的配置是按照Panda3d官网的要求,用了Release的开发模式(按照官网说法,Debug模式能编译过,但是运行的时候会因为不知名的原因crash)。


以下是我配置的方式,用来激活断点:

1、重新编译panda3d,优化选项为1

makepanda\makepanda.bat --no-python --no-ode optimization 1


2、VC IDE环境下,改变优化选项


C/C++ | Optimization下,改成disable。


这两步做好以后,在用户代码中,可以进行断点,查看变量值了。


注:

1、用上optimization 1的时候,会有ode文件编译不过,这个时候用--no-ode参数绕过,因为本人的确不需要ode。

2、仅根据官网信息,做了一种尝试,其他方式未做研究。






<think>嗯,用户想知道如何在CMake中配置和使用MSVC编译器。首先,我需要回忆一下CMake的基本工作流程。CMake生成项目文件需要指定生成器,而MSVC对应的是Visual Studio的生成器。用户可能是在Windows环境下开发,所以需要正确设置生成器。 然后,用户提到参考中的`cmake .. -G"NMake Makefiles"`,但这里用的是NMake,而用户的问题是关于MSVC的。可能需要区分同的生成器类型。比如,使用`-G"Visual Studio 17 2022"`这样的生成器来调用MSVC编译器。 接下来,配置步骤。首先需要确保系统安装了Visual Studio和MSVC工具链。然后,在CMakeLists.txt中可能需要检测编译器,设置语言标准,或者添加特定的编译选项。例如,使用`project(myproject LANGUAGES CXX)`来指定C++项目,这样CMake会自动选择MSVC编译器。 另外,用户可能遇到的环境变量问题,比如是否需要运行vcvarsall.bat来设置环境。过,CMake通常会自动处理这些,只要Visual Studio安装正确。但有时候可能需要手动指定工具链,特别是在命令行环境下,可能需要使用开发者命令提示符。 还有,用户可能想知道如何传递MSVC特定的编译选项,比如启用警告或优化选项。在CMakeLists.txt中使用`add_compile_options(/W4 /O2)`这样的命令,但要注意跨平台兼容性,可以用生成器表达式来处理。 可能还需要考虑同版本的Visual Studio,生成器的名称可能同,比如`-G"Visual Studio 16 2019"`对应VS2019。用户需要根据自己安装的版本调整生成器参数。 此外,参考中的检测系统环境部分,用户可能需要在CMake中根据平台设置同的编译选项,比如Windows下使用MSVC特有的功能,而其他平台使用Clang或GCC。这时候可以用条件判断,比如`if(MSVC)`来添加特定设置。 最后,测试配置是否正确,构建项目并检查输出是否使用MSVC编译器。可能还需要处理一些常见问题,比如路径问题,或者CMake找到编译器的情况,这时候需要检查环境变量或重新安装Visual Studio组件。 总结步骤应该是:安装Visual Studio,选择正确的生成器,配置CMakeLists.txt,处理编译选项,构建项目。同时,注意版本兼容性和环境配置是否正确。</think>在CMake中配置和使用MSVC编译器的步骤如下: ### 1. 环境准备 - 安装Visual Studio并勾选「使用C++的桌面开发」组件,确保包含MSVC编译器和Windows SDK[^2] - 打开「开发者命令提示符」(Developer Command Prompt)或配置系统环境变量 ### 2. 生成构建系统 在项目根目录执行: ```bash mkdir build cd build cmake .. -G "Visual Studio 17 2022" -A Win32 ``` *说明:* - `-G`指定生成器,`Visual Studio 17 2022`对应VS2022 - `-A`指定平台架构(Win32/x64/ARM等) - 也可使用`NMake Makefiles`生成器配合`cl.exe` ### 3. 配置CMakeLists.txt ```cmake cmake_minimum_required(VERSION 3.20) project(MyProject LANGUAGES CXX) # MSVC专用设置 if(MSVC) add_compile_options(/W4 /EHsc /std:c++latest) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() add_executable(main main.cpp) ``` ### 4. 高级配置项 ```cmake # 设置MSVC运行时库 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") # 启用地址 sanitizer target_compile_options(main PRIVATE "$<$<CXX_COMPILER_ID:MSVC>:/fsanitize=address>") ``` ### 5. 构建项目 ```bash cmake --build . --config Release ``` ### 验证编译器版本 ```cmake message(STATUS "Compiler ID: ${CMAKE_CXX_COMPILER_ID}") message(STATUS "Compiler version: ${CMAKE_CXX_COMPILER_VERSION}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值