2回答

0收藏

keil4中头文件路径设置的方法汇总

#开源分享 #开源分享 3274 人阅读 | 2 人回复 | 2014-01-06

[转]keil4中头文件路径设置的方法汇总

2013-01-15 21:04:49|  分类: [url=]keil[/url]|  标签:[url=]keil[/url][url=]c/c++[/url]|字号大中小 [url=]订阅[/url]


被头文件的路径设置困扰了很长时间,现在终于知道了!
在keil4中头文件路径设置的方法:
假设这里有若干个文件,分别是:
main.c dong.c peng.h
其中,main.c和dong.c都依赖与peng.h。他们的内容分别如下:
main.c:
绝对路径是:E:\MY_Documents\keil\C51\include\ff\dd\uu
dong.h:
绝对路径是:E:\MY_Documents\keil\C51\include\kk\ki\ts\dfbh
peng.h:



绝对路径是:E:\MY_Documents\keil\C51\include\dd\jj\pp\kk

这里说明一下:
在windows环境下: " .\ "表示当前目录,  " ..\ "表示当前目录的上一级目录,并且 "..\"可以连用,也就是可以写成 " ..\..\..\"表示当前目录的上级目录的上级目录的上级目录。
而在linux环境下," ./ "表示当前目录, "  ../ "表示当前目录的上一级目录,并且 "../"可以连用,也就是可以写成 " ../../../"表示当前目录的上级目录的上级目录的上级目录
这里我将他们分别放在不同的文件夹下面,由于后缀为.c的源文件只要添加到工程之中就会参加编译,并且必须添加到工程之中。所以这里只总结一下几种头文件目录的添加方法。

方法一 在keil的开发环境下添加:







请注意上面的系统生成的头文件目录是:,即.\dd\jj\pp\kk,其中.\是相对于项目文件.uvproj 而言的,其中 .\ 表示项目文件所在的当前目录,  项目文件的绝对路径是:E:\MY_Documents\keil\C51\include,peng.h的绝对路径是:E:\MY_Documents\keil\C51\include\dd\jj\pp\kk,很容易看到,peng.h文件就在E:\MY_Documents\keil\C51\include的\dd\jj\pp\kk目录下。

假如项目文件在E:\单片机系列\嵌入式\uCOS\uCOS-ii 版\uCOSII2.91\MDK-ARM下,而其中一个头文件在:E:\单片机系列\嵌入式\uCOS\uCOS-ii 版\uCOSII2.91\USER\uCOS-II\Source
下,那么在keil环境下设置产生的头文件目录是:..\USER\uCOS-II\Source。


方法二 绝对路径法
即将头文件的绝对路径写到#include之后。如下:
在main.c中:
在dong.c中:


方法三、相对路径法
peng.h的绝对路径是:E:\MY_Documents\keil\C51\include\dd\jj\pp\kk
main.c的绝对路径是:E:\MY_Documents\keil\C51\include\ff\dd\uu
dong.c的绝对路径是:E:\MY_Documents\keil\C51\include\kk\ki\ts\dfbh

通过分析可以得到peng.h相对于main.c路径是:
..\..\..\dd\jj\pp\kk
peng.h相对于dong.c的路径是:
..\..\..\..\dd\jj\pp\kk
所以在main.c中修改如下:
在dong.c中修改如下:
方法四 、相对目录+相对目录
在有的 .c 文件中,头文件有如下表示方法:
如有os_dbg.c,其中头文件是这样写的:
#include "uCOS-II\Source\ucos_ii.h" ,或者写成 #include <uCOS-II\Source\ucos_ii.h>
而os_dbg.c的绝对路径是:E:\单片机系列\嵌入式\uCOS\uCOS-ii 版\uCOSII2.91\USER\uCOS-II\Ports\ARM-Cortex-M3\RealView
ucos_ii.h的绝对路径是:E:\单片机系列\嵌入式\uCOS\uCOS-ii 版\uCOSII2.91\USER\uCOS-II\Source
在keil环境中的头文件路径设置中有:
当前.uvproj的绝对路径是:E:\单片机系列\嵌入式\uCOS\uCOS-ii 版\uCOSII2.91\MDK-ARM
可以看到, " ..\USER " +  "uCOS-II\Source\ucos_ii.h"不就是ucos_ii.h相对于.uvproj 的路径吗?即 "..\USER\uCOS-II\Source\ucos_ii.h"。

分享到:
回复

使用道具 举报

回答|共 2 个

倒序浏览

沙发

奋斗哥

发表于 2014-5-20 09:51:01 | 只看该作者

图片挂掉了
板凳

feel-123

发表于 2014-5-26 15:26:16 | 只看该作者

谢谢楼主分享!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条