zoukankan      html  css  js  c++  java
  • 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
    ng.h"
    #include "..Hardware
    tc.h"

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

    方法2:修改头文件名称

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

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

  • 相关阅读:
    css text-transform 属性
    CSS3 @media编写响应式页面
    css :first child与:first-of-type的区别
    前端外语网站合集
    webpack配置自动添加CSS3前缀
    vue中extend/component/mixins/extends的区别
    js缓动函数
    [LeetCode] 78. 子集
    [LeetCode] 76. 最小覆盖子串
    [LeetCode] 75. 颜色分类
  • 原文地址:https://www.cnblogs.com/showtime20190824/p/11410052.html
Copyright © 2011-2022 走看看