VS Code中用C/C++ Compile Run运行单个.cpp文件时十分正常能弹出cmd窗口,但是配成多文件编译成功后的情况下(用VS Code自带的终端运行成功的情况)就会报错定义在另一个.cpp中的文件未定义,并且没有打开窗口的情况下也会报错说打开了多个窗口,而且原本正常的中文字符串也会变成乱码,十分奇怪。
回答:
首先,解决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等工具,将所有源文件链接在一起进行编译。可以根据具体的项目需求进行选择。由于该问题并未提供具体的项目代码,无法提供更准确的示例。
确实很奇怪,这个你重启一下电脑看看呢,不行就换一个插件