gcc编译器rpm包_在vscode中使用Tiny C Compiler(tcc)作为C语言编译器,干货。

起因是这样的,之前我用的vscode是用gcc作为c语言编译器,但是某一天,出现了下图的error. Unable to start debugging. Program path '***' is missing or invalid.

0cd76237549c838357d4c669506dc745.png

很明显,我的源文件路径是全英文和数字,不含中文。每天第一次编译,必报这种error,重启电脑再去编译,又可以正常运行。之后我上网查了好多资料,也没能解决。

解决不了问题,我就跳过问题,走另一条路。于是我上网搜到了clang和tcc,经过一番尝试,我发现tcc可以用,再也没出现这样的Unable to start debugging. Program path '***' is missing or invalid.

干货开启。首先去tcc官网下载安装包,这个新的

e66832e927e242c0bf7396f43dd209c7.png
下载好解压,放到一个不含中文的目录下

然后把tcc路径添加到环境变量。用windows自带的搜索搜

1e8b8671c74ff55f8aa7800ca68755c0.png
点击“编辑账户的环境变量”

60bbe167119ba8e42eb7939bb7138319.png
这里选中path点击“编辑”

478a042892c6e30dda8bfbce174fecbf.png
点右边的“新建”

bededfc2f026d5a9e30f2f4a6b53b9eb.png
把你的tcc解压好的文件夹路径复制进去

同样的方法配置mingw64bin的环境变量,等会儿gdb用的是mingw64里面的。

接下来就是进vscode改配置。这些配置里面有关目录要改成你自己的,我的目录只是参考。

c_cpp_properties.json

{
    "configurations": [
        
        {
            "name": "Win32_TCC",
            "includePath": [
                "D:/programming/tcc/include"
            ],
            //"compilerPath": "D:/programming/tcc/tcc.exe",//这一行注释之后,就不会每次出现后面output的error
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "${default}",
            "cStandard": "c11",
            "cppStandard": "c++20"
        }
    ],
    "version": 4
}


launch.json

"version": "0.2.0",
    "configurations": [
        {
            "name": "tcc.exe - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "D:/programming/tcc",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:programmingmingw64bingdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: tcc.exe build active file"
        }
    ]
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: tcc.exe build active file",
            "command": "D:/programming/tcc/tcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "D:/programming/tcc"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

settings.json的,在"code-runner.executorMap"中添加以下c和c++(我平时不用c++,所以我注释它)的语句,效果如下。

"code-runner.executorMap": {
        "c": "cd $dir && tcc -run $fileName",
        //"cpp": "cd $dir && g++ -std=c++2a -fconcepts $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt && rm *.exe"
},

尝试运行

d7d851af4bd91e11469be6821bcb08d9.png

成功,没有报之前的error.

33b5b4d4057b2ce47938bf80119e7ff5.png
这两条error(s)信息无关紧要

可能配置之后,output(输出)会报这样2条信息。无所谓,实际能用tcc编译出二进制exe包就行。原因可看下图。

b4f7f68e1c334e331d962dde35c1a78f.png

前三个exe是我用tcc编译的,可以正常运行,文件大小是4KB。而后面gcc编译的文件是54KB。实践证明上上图那2条error(s) output不影响我用tcc编译源码。

我自己摸索出了改进的方法,在c_cpp_properties.json里把

"compilerPath": "D:/programming/tcc/tcc.exe",

这一行注释,以后就不会有output里那unable to resolve configuration with compilerpath这样的提示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值