STM32 相同头文件名称的路径问题

不知道大家有没有遇到过这种情况,同一个工程中有两个头文件分别在不同的路径,这两个路径同时也添加到了你的工程里面,那在某个c文件里面#include “xxx.h”后,系统会添加哪个头文件?还是两个都添加?博主测试结果为:添加排序在前的头文件。

比如在下面的工程中,同时包含了两个rng.h和rng.c文件(一个是CUBEMX自动生成的,另一个是博主找的第三方库,正点原子提供的)。

这时,如果你在某个c文件中#include “rng.h”,系统只会将先添加路径中的rng.h包含进去,即下图中排序在前的路径。

有两种方法可解决上面的问题。

方法1:添加头文件的时候指定详细路径。如下面代码所示:

#include "tim.h"
#include "usart.h"
#include "sys.h"
#include "lcd.h"
#include "string.h"
#include "..\Hardware\rng.h"
#include "..\Hardware\rtc.h"

有些头文件可直接引用,因为在该工程中他们是唯一的,但是有些可以细化路径引用目标头文件。

方法2:修改头文件名称

这个方法就不多说了,直接上图吧,应该一看就明白了。只是有一点要注意,修改后,原先调用的路径也要跟着修改。

可以在你选用的第三方库的头文件源文件前加一个前缀之类的,这样就可以规避头文件重名的问题了。虽然上图中Hardware中和Application/User文件下本来就没有重名的文件。

原文地址:https://www.cnblogs.com/showtime20190824/p/11410052.html

时间: 2024-11-06 02:50:08

STM32 相同头文件名称的路径问题的相关文章

STM32 关于头文件路径没添加错误问题(cannot open source input file "spi.h": No such file or directory)

error:  #5: cannot open source input file "spi.h": No such file or directory 1.出现这种问题,首先要确认头文件的命名要与文件名一致,如下: #ifndef _SPI_H #define _SPI_H #endif 2.添加路径,问题即可解决 3.确认OK,编译,问题解决! 原文地址:https://www.cnblogs.com/xingboy/p/9541267.html

批量获取文件名称和路径

1.新建bat文件,将bat文件放入同一文件夹 2.获取jpg格式文件名称,LIST.TEXT为文件名称保存文件 代码:DIR *.jpg  /B >LIST.TXT 3.获取所有格式文件名称 代码:DIR *.* /B >LIST.TXT 4.获取jpg格式文件完整路径 代码:DIR /s/b *.jpg > LIST.TXT exit 5.想去掉LIST中名称后缀 将LIST内容拷贝到excel中,使用FIND和RIGHT函数来去除后缀 原文地址:https://www.cnblog

dir:一行代码,提取出所有视频文件名称及路径

某次,部门接到一个任务,要求对公司现有的视频文件资料做一个统计整理分类的工作. 领导召集开会,问:两周时间够用吗? 统计整理分类工作的第一步骤是把视频文件名称来源类别信息录入到 excel 表格中,才能进行下一步工作. 大家面面相觑,逐一手工复制视频文件名称粘贴至 excel 表格中,耗时费力,数据准确度也不会太高. 我自告奋勇,这一步工作我来搞定. 批处理代码: ------------------------------------------------------- dir /s /b

(转) C语言头文件、库文件的查找路径

在程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有        些公    用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使        用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include   

C语言头文件、库文件的查找路径

在 程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include    但是这两种形式是有区别的:使用尖括号表

Linux下的头文件搜索路径

     对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行"./configure --help"命令查看使用帮. 一个程序能正确编译.链接.运行需要满足3个条件:预处理时能找到头文件,连接时能找到库(静态库或动态库),运行时能找到库.下面介绍头文件的搜索路径 GCC 搜索头文件有三种策略: 1.内定搜索目录,这是编译器自身预设的目录.由于是内

头文件的查找方式和库的搜索路径

  对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行"./configure --help"命令查看使用帮. 一个程序能正确编译.链接.运行需要满足3个条件:预处理时能找到头文件,连接时能找到库,运行时能找到库.下面分别介绍: 1.指定头文件位置 在程序中常用两种方法来包含头文件: #include <headerfile.h>  

Linux C语言头文件搜索路径

本文介绍在linux中头文件的搜索路径,也就是说你通过include指定的头文件,linux下的gcc编译器它是怎么找到它的呢.在此之前,先了解一个基本概念. 头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了.头文件中一般放一些重复使用的代码,例如函数声明.变量声明.常数定义.宏的定义等等.当使用#include语句将头文件引用时,相当于将头文件中所有内容,复制到#include处.#include有两种写法形式,分别是: #include <> : 直接到系统指定

C/C++中如何写头文件

在C语言的学习过程中,我们一般把所有的代码写在一个文件中.随着自身水平的提高,我们发现代码越写越长,代码行数越来越多,把一个工程的所有代码写在一个文件中让人看起开非常吃力.于是我们开始想把代码中的函数归类,同一类放在同一个文件中当中,那么如何实现将一个工程中的代码放到不同文件中呢?这就需要写头文件了.下面的简单列子将让你学会如何写头文件.你也可以点击这里下载源代码自己研究. 假设我们需要定义一些与栈有关的函数,主程序需要调用这些函数. 首先,我们在同一文件夹中新建3个文件(要包含不同的自定义头文