cnxh 发表于 2022-3-20 17:36:17

vs code IAR工程#include不支持用#define定义的文件名

本帖最后由 cnxh 于 2022-3-20 17:37 编辑


比如IAR中正常的#include rcc_c,其中rcc_c,在其它文件中定义#define rcc_c                ".\..\..\..\NewMcuLib\Drive\Arm\Iar\Stm32F10x\stm32f10x_rcc.c"
vs code中错误,文件路径定义没问题,把这个定义文件直接先加入到vs中也一样错误,vs中直接定义#include ".\..\..\..\NewMcuLib\Drive\Arm\Iar\Stm32F10x\stm32f10x_rcc.c",
在上面点击转到定义是可以跳转到此文件的

cnxh 发表于 2022-3-20 17:56:17

这样定义主要是为了想移植方便比如#include gpio_c,arm的要更改成avr只要在那个文件名宏定义里选择一下gpio_c定义加入不同的cpu内核底层驱动文件

cnxh 发表于 2022-3-20 18:48:20

已解决,不是不支持,是用vs打开后,不知道是不是文件包含顺序变化还是其它原因,是这个定义文件,当前的文件还没识别到,直接在本文件中先包含那个文件名宏定义文件,就可以了

cheungman 发表于 2022-3-20 21:24:13

我想知道, vscode下用IAR编译不了lib文件.a, 如何解决, 提示Fatal Error: cannot open source file "xxx.c"

cheungman 发表于 2022-3-20 21:43:38

cheungman 发表于 2022-3-20 21:24
我想知道, vscode下用IAR编译不了lib文件.a, 如何解决, 提示Fatal Error: cannot open source file "xxx.c" ...
(引用自4楼)

检查了一下是.ewp文件里有xxx.c的描述, 把这个改成xxx.a, 就可以了.

Elex 发表于 2022-3-20 21:50:19

试下看看是不是反斜杠转义的问题

智涅 发表于 2022-3-20 22:00:02

搭车问一下
用VS code开发C51,配置运行(F5)自动执行bat文件进行编译一直搞不定,每次需要用 右键bat文件然后Run Code 方式才行。
我参考网上做法是在lauch.json加入以下:
{
            "name": "(Windows) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/Target 1.BAT",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console": "externalTerminal"
      },
报错 Not implemented.,路径、文件都没错,暂时找不到原因

wudicgi 发表于 2022-3-20 22:08:34

智涅 发表于 2022-3-20 22:00
搭车问一下
用VS code开发C51,配置运行(F5)自动执行bat文件进行编译一直搞不定,每次需要用 右键bat文件 ...
(引用自7楼)

bat 脚本需要用 cmd.exe 执行吧,可以把 cmd.exe 理解成 Linux 中 /bin/sh

智涅 发表于 2022-3-20 22:23:46

wudicgi 发表于 2022-3-20 22:08
bat 脚本需要用 cmd.exe 执行吧,可以把 cmd.exe 理解成 Linux 中 /bin/sh
(引用自8楼)

我也是参考
https://zhuanlan.zhihu.com/p/100060453?from_voters_page=true
学来的,发现它的方法不行,所以才自己摸索了Code runner的方式,不过就是没有一键F5编译来得爽
页: [1]
查看完整版本: vs code IAR工程#include不支持用#define定义的文件名