mac下 vscode 运行 c++无法弹出窗口

Configure C/C++ debugging

Mac 下,自带的C 编译器是 Clang 而不是 GCC,虽然在命令行中输入 gcc 是有反应的,但是实际上 gcc 被软连接到 clang 上了,所以实际上只有 Clang。Mac 的 Clang 是 Xcode Command Line Tools(CLT)的一部分,Xcode 和 CLT 和 Clang 的版本有着绑定关系,不知道能不能随意替换成自己构建的版本。

而 Clang 配套的调试器不是 gdb,而是 lldb,是 llvm 体系下的东西。而如果要换成 gdb 调试器,貌似要创建证书等复杂操作,比较麻烦。在vscode 中使用 lldb 存在限制:

vscode 官方文档提到:

macOS : When set to true, it will spawn an external console through lldb-mi. When set to false, the output can be seen in VS Code's debugConsole. Due to limitations within lldb-mi, integratedTerminal support is not available.
macOS :设置为 true 时,将通过 lldb-mi 生成外部控制台。设置为 false 时,可在 VS Code 的 debugConsole 中查看输出。由于 lldb-mi 本身的限制,集成终端 (integratedTerminal) 支持不可用。

也就是说,无论如何无法输出内容到集成终端,要么外部终端,要么输出在调试控制器,通过调整 launch.json 文件的"externalConsole": 来设置。

设置为 true 时,启动外部终端(即系统的 terminal 来输出内容)

设置为 false 时,只能在调试控制器输出内容。(注意,调试控制器貌似不能输入内容)。如图。

而此时终端只是显示:

生成已成功完成。

* 终端将被任务重用,按任意键关闭。

如果还是想输出东西在集成终端,要么手动在集成终端运行编译和运行的指令,要么使用 code runner 一键运行。但是想使用 vscode 的调试功能,那就没有办法了。

相关推荐
程序喵大人1 小时前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
ShineWinsu7 小时前
对于C++:auto_ptr、unique_ptr、shared_ptr的模拟实现
c++·面试·笔试·智能指针·unique_ptr·shared_ptr·auto_ptr
XLYcmy9 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
反转180度10 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
sudebao点com11 小时前
一次“Google 能打开,FlexTV 打不开”的 DNS 故障排查:从 curl 超时到完整证据链
windows·macos·https·cdn·dns·nslookup·网络排错
码匠许师傅11 小时前
【C++ 面试真题】聊聊 C++ 的多继承与虚继承
开发语言·c++·面试
有点。13 小时前
C++认识数
开发语言·c++
2023自学中13 小时前
Qt 简易聊天室(第二篇),单线程 改为 多线程,方便后续增加文件传输功能
c++·qt
Tyler_TXZ14 小时前
C++C语言之——二叉树
c语言·开发语言·数据结构·c++·二叉树
有点。15 小时前
C++二叉树二(练习题)
数据结构·c++·算法·图论