keil4中標頭檔案路徑設定的方法彙總
原文章路徑:http://pengdonglin137.blog.163.com/blog/static/13319983320130159449234/
被標頭檔案的路徑設定困擾了很長時間,現在終於知道了!
在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
下,那麼在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"。