VSCode同时编译多个C文件

一.环境说明

1.系统:Ubuntu 22.04.2 LTS

2.Visual Studio Code: 1.80.1

二.问题描述

今天使用VSCode编译《Programming Abstractions In C》书中的gymjudge.c代码时遇到错误,错误提示为:

c 复制代码
(base) codists@pc:~/projects/Programming-Abstractions-In-C$ cd "/home/codists/projects/Programming-Abstractions-In-C/chapter2/" && gcc gymjudge.c -o gymjudge -lm && "/home/codists/projects/Programming-Abstractions-In-C/chapter2/"gymjudge
/usr/bin/ld: /tmp/cc5uqaX4.o: in function `GetScore':
gymjudge.c:(.text+0x81): undefined reference to `GetReal'
/usr/bin/ld: /tmp/cc5uqaX4.o: in function `main':
gymjudge.c:(.text+0x173): undefined reference to `GetInteger'
collect2: error: ld returned 1 exit status

三.问题分析

因为gymjudge.c文件里面引入了"simpio.c"文件里面"GetReal"、"GetReal"方法,但是我们可以看到错误提示中的"gcc gymjudge.c -o gymjudge -lm"只编译了gymjudge.c一个文件,所以找不到"GetReal"、"GetReal"方法,应该将"simpio.c"一起进行编译。

在命令行操作我们可以将两个c文件写到一起如"gcc gymjudge.c simpio.c -o gymjudge -lm",但是现在是在VSCode里面操作,那么在哪里设置这个命令呢?在setting.json文件中设置。

四.解决方法

(1)打开设置(快捷键:Ctrl + ,)

(2)Open Settings(JSON)

(3)修改配置

将:

bash 复制代码
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -lm && $dir$fileNameWithoutExt",

修改为:

bash 复制代码
 "c": "cd $dir && gcc *.c -o $fileNameWithoutExt -lm && $dir$fileNameWithoutExt",

修改完之后保存,最后重启VSCode即可。

五.总结

通过解决该问题可以得到两个收获:(1)掌握了如何通过多个c源文件编译出一个可执行文件。(2)了解了VSCode可视化操作背后所执行的命令,在何处配置这些命令以及如何配置这些命令。

欢迎搜索及关注:编程人

相关推荐
在线OJ的阿川1 天前
vscode远程连接服务器:解决Got bad result from install script
服务器·ide·vscode·个人开发
学嵌入式的小杨同学1 天前
【嵌入式 C 语言高频考点】周测 + 期中真题解析:从基础语法到编程实战
c语言·数据结构·数据库·vscode·算法·面试
26岁的学习随笔1 天前
解决 Claude Code VS Code 扩展在 Windows 上无法检测 Git Bash 的问题
vscode·claude code·git-bash
南草徽1 天前
vscode小技巧预览-返回到上一级文件夹
ide·vscode·编辑器
楼田莉子1 天前
Linux系统小项目——“主从设计模式”进程池
linux·服务器·开发语言·c++·vscode·学习
changzehai1 天前
Rust + VSCode + probe-rs搭建stm32-rs嵌入式开发调试环境
vscode·后端·stm32·rust·嵌入式·probe-rs
吃不胖爹1 天前
解决VSCode运行时自动保存问题
ide·vscode·编辑器
小锋学长生活大爆炸1 天前
【教程】使用VSCode编译LaTex
vscode·latex
QQ__17646198241 天前
SSH远程通过Vscode运行Jupyter无法使用CUDA
vscode·jupyter·ssh
Ms.AG1 天前
GitHub 学生认证(保姆级教学)
vscode·github