失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > KEIL5 头文件路径设置摸索和总结

KEIL5 头文件路径设置摸索和总结

时间:2020-12-13 16:27:51

相关推荐

KEIL5  头文件路径设置摸索和总结

KEIL5 头文件路径设置摸索和总结

1.常识

1.1绝对路径和相对路径的认知:

绝对路径:是从盘符开始的路径,形如

C:\windows\system32\cmd.exe

相对路径:是从当前路径开始的路径,假如当前路径为C:\windows

要描述上述路径,只需输入

system32\cmd.exe

实际上,严格的相对路径写法应为

.\system32\cmd.exe

其中,.表示当前路径。

假如当前路径为c:\program files

要调用上述命令,则需要输入

…\windows\system32\cmd.exe

其中,…为父目录。

当前路径如果为c:\program files\common files

则需要输入

…\windows\system32\cmd.exe

1.2在windows环境下的相对路径表示

" .\ "表示当前目录,

" …\ "表示当前目录的上一级目录,

并且 "…"可以连用,也就是可以写成 " …"表示当前目录的上级目录的上级目录的上级目录。

1.3

#include <xxxx.h>

直接访问软件安装位置的库文件

#include “xxxx.h”

先访问程序定义头文件的位置,没找到再去库文件查找文件。

1.4

#include “./ucos_ii.h”

#include “.\ucos_ii.h”

#include “ucos_ii.h

三者效果一致

以后采取统一标准的写法,即

#include “.\ucos_ii.h”

2.路径设置摸索

2.1软件项目的目录示意

软件程序中个文件的目录框架

2.2options for target 中的路径设置

选择路径时是绝对路径

在这里显示的是相对路径了

说明在这里,将绝对路径转化为相对路径了。

在这里,提出一个问题:

如果我想用相对路径方式来调用头文件的话,我必须清楚当前路径是什么!

从上面两张图可以推断出当前路径是什么,推断过程如下:

假设当前路径时main.c文件所在位置,即

E:\05_Program\03_Keil4\a0115_can_rs485_lpc1766_01(locked)\UserCode\Source

那么Project这个文件夹所应表示的相对路径应为:

…\Project

那么Source这个文件夹所应表示的相对路径应为:

…\Source

因此可以判定,当前路径不是main.c文件所在的位置。

假设当前路径时LPC1700.uvproj文件所在位置,即E:\05_Program\03_Keil4\a0114_can_rs485_lpc1766_01(locked)\Project

那么Project这个文件夹所应表示的相对路径应为:

…\Project

那么Source这个文件夹所应表示的相对路径应为:

…\UserCode\Source

因此可以判定,当前路径是LPC1700.uvproj文件所在的位置。

若是依旧不确定,可以尝试着将文件的绝对路径再次更改下,即可确认是否正确。

3.路径设置方式

3.1方式1

在“options for target ‘LPC1700’的C/C++中的include paths”中包含所有头文件所在的路径;比如:gpio.c这个源文件要调用uart.h、gpio.h、config.h这两个头文件,那包含路径的写法如下:

#include “gpio.h”

#include “uart.h”

#include “config.h”

这种写法有时候会出现编译错误,也就是给人感觉一团乱。我不喜欢,没存在感!

3.2方式2

以自身文件(源文件或头文件)所在的路径为基准,找其他的头文件,比如:gpio.c这个源文件要调用uart.h、gpio.h、config.h这两个头文件,那包含路径的写法如下:

#include “.\gpio.h”

#include “…\Uart\uart.h”

#include “…\UserCode\Source\config.h”

这一种路径定义的方式可以确认每一条路径设置的正确姿势,前提是对整个软件的架构很熟悉,我建议采用这种,可以确保路径的指向是正确的。

如果觉得《KEIL5 头文件路径设置摸索和总结》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。