首页 > 其他分享 >VS Code中C开发多源文件的编译设置

VS Code中C开发多源文件的编译设置

时间:2023-11-16 22:12:06浏览次数:41  
标签:文件 Code tasks ucmplx 源文件 编译 json VS workspaceFolder

1. 引言

C开发中,通常需要编译多个文件,本文将简要介绍在VS Code中进行C开发时如何编译多个文件。实例工程结构如图所示:

image

其中,main.c文件内容如下:

#include "stdio.h"

/* Includings */
#include "umath.h"
#include "ucmplx.h"

int main(void)
{
    /* Test umath.c */
    float x = 1.21F, y;
    y = 1.0F / umath_invsqrt(x);
    printf("y = %F\r\n", y);
    /* Test ucmplx.c */
    float re1 = 2, im1 = 0, re2 = 1, im2 = 9, re, im;
    ucmplx_add(&re, &im, re1, im1, re2, im2);
    printf("(%F + %Fi) + (%F + %Fi) = %F + %F\r\n", re1, im1, re2, im2, re, im);
    return 0;
}

umath_invsqrt函数定义在umath.c中,ucmplx_add函数定义在ucmplx.c中。

2. 开发环境

在VS Code中通常可以采用两种开发工具链:

3. Microsoft C++

3.1 生成所需文件

点击Run and Debug

image

选择C++ (Windows)

image

选择cl.exe作为编译器(Compiler),

image

此时不出意外的会报错,

image

选择Abort即可。

3.2 修改tasks.json文件

经过上述操作,在.vscode文件夹中会出现tasks.json文件,打开该文件,在args中添加如下内容:

"-g", "${workspaceFolder}\\*.c",
"-g", "${workspaceFolder}\\ucmplx\\*.c",
"-I", "${workspaceFolder}",
"-I", "${workspaceFolder}\\ucmplx",

并注释掉如下内容:

// "${file}",

如下图所示:

image

根据相关博文,个人对上述内容的解读如下:

  • "-g"用于添加源文件路径,类似于在IDE中添加Source Folder;

  • "-I"用于添加源文件的头文件,类似于IDE中设置Include Path。

3.3 编译链接并运行

再次点击Run and Debug

image

Terminal中输出程序运行结果。

image

4. GCC

4.1 生成所需文件

以下给出另一种生成tasks.json文件的方法。点击“小齿轮”,

image

选择gcc.exe作为编译器(Compiler),

image

经过上述操作,在.vscode文件夹中会出现tasks.json文件。

4.2 修改tasks.json文件

打开tasks.json文件,在args中添加如下内容:

"-g", "${workspaceFolder}\\*.c",
"-g", "${workspaceFolder}\\ucmplx\\*.c",
"-I", "${workspaceFolder}",
"-I", "${workspaceFolder}\\ucmplx",

并注释掉如下内容:

// "-g",
// "${file}",

如下图所示:

image

4.3 编译链接并运行

点击此即可,

image

选择gcc.exe作为编译器(Compiler),

image

同样在Terminal中即可查看程序运行结果。

参考文献

[1] 萧筱姐姐. windows上实现vscode编译多个c源文件. 2023.11.16. https://zhuanlan.zhihu.com/p/419473501

标签:文件,Code,tasks,ucmplx,源文件,编译,json,VS,workspaceFolder
From: https://www.cnblogs.com/zysgy/p/17837404.html

相关文章

  • 【11月LeetCode组队打卡】Task1--HashTable
    在准备CSP,借这次组队打卡的机会好好复习一下cpp的各种基操(微操,和基础的数据结构217.存在重复元素vector向量的用法有点忘了,先简单回顾一下(其实是好久没写cpp了(安详.jpg输入与输出//未知数组元素个数vector<int>hash;intx;while(cin>>x){hash......
  • leet code 77. 组合
    77.组合题目描述给定两个整数n和k返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]]提示:●1<=n<=20●1<=k<=......
  • VSCode------设置自动补全函数的括号
    一:VSCode设置自动补全函数的括号操作步骤1.1 寻找setting.json配置文件    Ctrl+Shift+P (Mac:command+Shift+P) 1.2编辑并保存配置内容 "typescript.suggest.completeFunctionCalls": true,  "javascript.suggest.completeFunctionCalls": ......
  • Visual Studio Code (VS Code) 中 常用的快捷键
    在VisualStudioCode(VSCode)中,有许多常用的快捷键可以提高开发效率。以下是一些常用的快捷键:1.编辑器相关操作:-`Ctrl+P`:快速打开文件。-`Ctrl+Shift+N`:打开新的编辑器窗口。-`Ctrl+S`:保存当前文件。-`Ctrl+F`:在当前文件中进行文本查找。-`C......
  • error DatabaseException(disk I/O error (code 1802)) sql 'PRAGMA user_version' ar
    问题描述errorDatabaseException(diskI/Oerror(code1802))sql'PRAGMAuser_version'args[]duringopen,c问题分析错误消息"DatabaseException(diskI/Oerror(code1802))"表示在尝试打开SQLite数据库时发生了磁盘I/O错误。这可能有几种原因:数据库文件路径......
  • vs code开发微信小程序配置
    安装小程序开发助手安装vscode-wechat安装wxml安装wechat-snippet安装vscodewxml安装vscodeweappapi......
  • 解决执行pytest -vs test.py报错问题
    报错如下:解决方案:在终端中执行python-mpytest+后面你想运行的命令,如下:python-mpytesttest.py......
  • Codewhisperer 使用评价
    最近亚⻢逊推出了一款基于机器学习的AI编程助手AmazonCodeWhisperer,可以实时提供代码建议。在编写代码时,它会自动根据现有的代码和注释给出建议。AmazonCodeWhisperer与GitHubCopilot类似,主要的功能有:代码补全注释和文档补全代码安全问题的辅助定位亚马逊云科技开发......
  • Vscode 更新之后连不上服务器的解决方案
    参考这里有一点不一样:不需要删除.vscodeserver<参考的博文:原文:删掉整个.vscodeserver目录,然后重新生成(重新连接,失败后就重新生成了)>只需要删除.vscodeserver\bin\下的文件夹,他们就是不同版本的server然后新建那个$COMMIT_ID的文件夹就可以了,这一步参考上文。再然后再链接就......
  • gin-vue-admin 接口错误Error: Request failed with status code 500
    本地运行以后登录出现:控制台检查发现是请求getMenu出现500错误,并且后端出现"Error1071(42000):Specifiedkeywastoolong;maxkeylengthis1000bytes"错误,那就是数据库casbin_rule的表引擎不是InnoDB,更改成InnoDB即可。ALTERTABLEcasbin_ruleENGINE=InnoDB;......