如何让C/C++ Compile Run插实现多文本编译?

VS Code中用C/C++ Compile Run运行单个.cpp文件时十分正常能弹出cmd窗口,但是配成多文件编译成功后的情况下(用VS Code自带的终端运行成功的情况)就会报错定义在另一个.cpp中的文件未定义,并且没有打开窗口的情况下也会报错说打开了多个窗口,而且原本正常的中文字符串也会变成乱码,十分奇怪。

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    回答:

    首先,解决cmd窗口中文乱码的问题需要将cmd的字符编码改为UTF-8,并且在编译时使用该编码。这可以通过在cmd窗口中输入以下命令实现:

    chcp 65001
    

    在编译时,可以在调用gcc或g++的时候添加参数“-finput-charset=UTF-8”表示输入文件的编码为UTF-8,同时添加参数“-fexec-charset=UTF-8”表示输出文件的编码为UTF-8。具体来说,可以将以下代码添加到settings.json中以实现该功能:

    "c-cpp-compile-run.compileCommand": "gcc -finput-charset=UTF-8 -fexec-charset=UTF-8 -Wall -g ${file} -o ${fileDirname}\\${fileBasenameNoExtension}",
    

    其次,避免在没有打开cmd窗口的情况下出现错误需要将C/C++ Compile Run插件的配置项更改为“terminal”模式,即在VS Code中内置的终端窗口中进行编译。可以将以下代码添加到settings.json中以实现该功能:

    "c-cpp-compile-run.defaultCompileCommand": "g++ -o ${fileDirname}\\${fileBasenameNoExtension} ${file} && ${fileDirname}\\${fileBasenameNoExtension}",
    

    最后,实现多文本编译需要使用Makefile或CMake等工具,将所有源文件链接在一起进行编译。可以根据具体的项目需求进行选择。由于该问题并未提供具体的项目代码,无法提供更准确的示例。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

确实很奇怪,这个你重启一下电脑看看呢,不行就换一个插件