1. 程式人生 > >keil中標頭檔案 和c檔案 路徑設定 問題

keil中標頭檔案 和c檔案 路徑設定 問題

被標頭檔案的路徑設定困擾了很長時間,現在終於知道了!

在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的開發環境下新增:

   

  1.  

   

  1.  

   

請注意上面的系統生成的標頭檔案目錄是:,即.\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"

而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"。

轉載自:http://pengdonglin137.blog.163.com/blog/static/13319983320130159449234/