[₽] 2023-06-16 23:35 采纳率: 86.7%
浏览 45
已结题

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

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

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-18 02:56
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答来自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等工具,将所有源文件链接在一起进行编译。可以根据具体的项目需求进行选择。由于该问题并未提供具体的项目代码,无法提供更准确的示例。


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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月23日
  • 创建了问题 6月16日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画