linux下VScode编写C++程序如何添加头文件和对应的CPP文件

本文详细记录了解决在Ubuntu系统下使用VScode编译时遇到的函数未定义错误的过程。通过调整c_cpp_properties.json中的头文件路径及tasks.json中的命令行参数,成功解决了跨文件调用函数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:本人使用的是ubuntu系统

先说一下问题吧:

其中test1()是在function.h中声明,在function.cpp中定义的函数。

在网上查了好久大部分都是说路径的包含问题,那好吧,我就照做吧,说干咋就干

其中第7行就是我添加的头文件路径。

添加之后还是同样的问题,未定义的函数。

又在网上搜索了半个小时,命令行参数的问题,就是说VScode之后编译main.cpp而不会编译function.cpp,这当然是找不到test1()咯,我又去改了一下命令行参数,改的结果如下:

其中第11行是我添加的代码,这样之后就可以正常运行了。

总结起来就是两个步骤:(1)在c_cpp_properties.json中添加头文件路径。

           (2)在tasks.json中修改命令行参数。

如果有大佬有更好的方法欢迎来交流。

 

### 配置VSCode在Windows上正确识别Linux环境中的头文件函数 #### 安装必要的工具扩展 为了使Visual Studio Code (VSCode)能够在Windows环境下正确处理Linux开发环境中使用的C/C++代码,需要安装一些特定的工具插件。 对于C/C++支持,推荐安装Microsoft官方提供的C/C++扩展[^1]。此扩展提供了 IntelliSense 功能,能够帮助开发者更高效地编写代码并减少错误的发生率。此外,还需要确保已安装适用于 Windows 的 MinGW 或者通过 WSL(Windows Subsystem for Linux) 来提供 GCC 编译器及其关联库的支持[^2]。 #### 设置launch.json配置文件 `launch.json` 文件用于定义调试会话的相关参数。当涉及到跨平台项目时,可能需要调整 `program` 字段以指向正确的可执行文件位置。例如: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build", // 修改为实际构建目录下的二进制文件路径 "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "Build" } ] } ``` #### 使用WSL集成功能 如果选择利用WSL来进行Linux兼容性的开发工作,则可以通过启用远程 - WSL 扩展来简化操作流程。这允许直接在Linux子系统内打开整个项目,并自动继承其环境变量以及编译链路等资源。 #### 自动化获取头文件路径 针对不同操作系统上的差异性,可以采用如下方法动态收集所需包含的头文件路径: ```bash find . -name "*.h" | sed 's/\/*\.h$//' | sort | uniq ``` 这段脚本将会遍历当前目录树结构内的所有`.h`结尾的文件,并提取它们所在的父级文件夹作为潜在的include path候选对象[^3]。 #### 调整IntelliSense配置 最后一步是在项目的根目录创建或编辑 `.vscode/c_cpp_properties.json` 文件,指定好目标平台以及其他必要选项以便让IDE更好地理解源码上下文关系。下面是一个示例片段: ```json { "configurations": [ { "name": "Win32", "defines": ["_DEBUG"], "compilerPath": "/usr/bin/gcc", // 如果使用的是WSL则应指明对应的GCC路径;如果是MinGW,请替换为此处本地安装的位置 "intelliSenseMode": "gcc-x64", "browse": { "path": [ "${workspaceFolder}" ], "limitSymbolsToIncludedHeaders": true, "databaseFilename": "" }, "includePath": [ "${workspaceFolder}/**", "<其他自动生成出来的头文件所在路径>" ], "forcedInclude": [] } ], "version": 4 } ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值