STM32将.c文件与.h文件加入工程文件的两种步骤,解决can not open source input file “xxx.h“: No such file or directory..方法
STM32将.c文件与.h文件加入工程文件的两种步骤,注意区分好路径,易混淆。
目录
3.关于cannot open source input file “xxx.h“: No such file or directory...的问题
1.第一种步骤(正点原子步骤)
1.1 拿正点原子的工程模板为例,新建HARDWRAE文件夹,并在该文件夹下新建.c与.h文件,右键创建docx文档,后缀改为.c或者.h文件。
1.2 右键点击工程文件夹,点击Manage Project。
1.3 在Groups中点击文件夹图标,手动输入HARDWARE名称。
1.4 在Files栏中,将HARDWARE中的.c与.h文件通过Add Files加入进去,随后点击ok。
1.5 点击魔术棒按钮
1.6 在c/c++栏目下,选择好HARDWARE-LED的路径,点击文件夹,然后添加到LED,注意这里路径,不然就会报错,下方会说明这个问题。然后点击ok。
1.7 在.h文件中需加上防止重复定义代码
#ifndef __LED_H
#define __LED_H
...
#endif
使用#ifndef关键字判定__LED_H是否被定义,如果没有定义,从#ifndef到#endif之间的内容就都有效,这个头文件若被其他文件包含,就会成功包含到这个文件里面。#define是为了防止重复包含,已经定义了就不会再进入。
这样就可以正常编译了,一般将“sys.h”、“stm32f4xx.h"加入进去。
2. 第二种步骤(江科大步骤,更简便)
21. 新建好空的HARDWARE文件夹,选择C/C++路径后(步骤一的1.6),直接在HARDWARE右键添加.c与.h文件。
2.2 右键HARDWARE,点击 Add New Item...。
2.3 在页面中添加.c文件名字以及对应的目录,.h文件也是如此,选择路径需要选择在HARDWARE中。.c与.h文件都需要分别加进去,且选择路径。
这个时候HARDWARE文件夹下就已经出现对应的文件了。
随后就按照步骤一中的1.7进行防止重定义,在.c文件包含对应的.h文件,以及#include "stm32f...",和”sys.h”。
3.关于cannot open source input file “xxx.h“: No such file or directory...的问题
3.1 问题描述
在后续添加其它.c和.h文件中,我使用了步骤二的方式进行添加,用的是一种方式下的工程,然后编译就出现:cannot open source input file “xxx.h“: No such file or directory...,搜索了一下,主要是路径的问题,没有添加路径,解决办法:
3.2 本文的解决步骤
在魔术棒—C++—添加路径一栏中,发现这个路径是到LED文件夹下,而江科大的工程文件是将所有.c和.h文件都直接放在HARDWARE中,正点原子是在对应类别下分别创建了LED文件,然后把.c和.h放在该文件夹下。 所以这里再添加一个路径到HARDWARE下即可,或者像正点原子模板一样,新建一个分类文件夹然后放进去,并添加到HARDWARE—你创建的文件名下也行。
说到底,就是你所有放.c与.h文件的路径在这里必须要有,如果都在一个文件夹下添加一次即可,在不同的文件夹就要添加对应的路径。#####
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)