新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > keil4中頭文件路徑設置的方法匯總

keil4中頭文件路徑設置的方法匯總

作者: 時間:2016-11-28 來源:網(wǎng)絡 收藏
個人記錄:
感覺相對路徑比較方便。
keil是從project文件所在目錄找頭文件,頭文件的相對目錄是相對.uvproj文件的。
目前我的個人習慣是
建立:Doc、Listing、Output、Project、User幾個文件夾
Doc放文檔和readme
Listing設置為配置中的清單選項卡輸出文件夾
Output設置為輸出文件夾
Project放建立的工程文件
User放自己寫的.c和.h(這部分后期可能做更改)
還可以有OS等操作系統(tǒng)的文件夾。
在這種情況下,包含頭文件用相對方式寫的話就是類似于:
#include <..Userallkeillibrary.h>
#include <..UserSTC12C5A60S2.h>
#include <..UserMyType.h>
#include <..Userdeclare.h>
#include <..UserstcY3_delay.h>
#include <..Userhmc5883l.h>
#include <..Usermpu6050.h>
#include <..UserSerial.h>
#include <..Userpmw3610.h>
#include <..Userdata.h>
//#include <..Userkalman.h>
以下是轉(zhuǎn)載的正文:

被頭文件的路徑設置困擾了很長時間,現(xiàn)在終于知道了!

本文引用地址:http://butianyuan.cn/article/201611/322749.htm

keil4中頭文件路徑設置的方法:

假設這里有若干個文件,分別是:

main.c dong.c peng.h

其中,main.c和dong.c都依賴與peng.h。他們的內(nèi)容分別如下:

main.c:

絕對路徑是:E:MY_DocumentskeilC51includeffdduu

dong.h:

絕對路徑是:E:MY_DocumentskeilC51includekkki sdfbh

peng.h:

絕對路徑是:E:MY_DocumentskeilC51includeddjjppkk

這里說明一下:

在windows環(huán)境下: " . "表示當前目錄, " .. "表示當前目錄的上一級目錄,并且 ".."可以連用,也就是可以寫成 " ......"表示當前目錄的上級目錄的上級目錄的上級目錄。

而在linux環(huán)境下," ./ "表示當前目錄, " ../ "表示當前目錄的上一級目錄,并且 "../"可以連用,也就是可以寫成 " ../../../"表示當前目錄的上級目錄的上級目錄的上級目錄

這里我將他們分別放在不同的文件夾下面,由于后綴為.c的源文件只要添加到工程之中就會參加編譯,并且必須添加到工程之中。所以這里只總結(jié)一下幾種頭文件目錄的添加方法。

方法一 在keil的開發(fā)環(huán)境下添加:

請注意上面的系統(tǒng)生成的頭文件目錄是:,即.ddjjppkk,其中.是相對于項目文件.uvproj而言的,其中 . 表示項目文件所在的當前目錄, 項目文件的絕對路徑是:E:MY_DocumentskeilC51include,peng.h的絕對路徑是:E:MY_DocumentskeilC51includeddjjppkk,很容易看到,peng.h文件就在E:MY_DocumentskeilC51include的ddjjppkk目錄下。

假如項目文件在E:單片機系列嵌入式uCOSuCOS-ii 版uCOSII2.91MDK-ARM下,而其中一個頭文件在:E:單片機系列嵌入式uCOSuCOS-ii 版uCOSII2.91USERuCOS-IISource

下,那么在keil環(huán)境下設置產(chǎn)生的頭文件目錄是:..USERuCOS-IISource。

方法二 絕對路徑法

即將頭文件的絕對路徑寫到#include之后。如下:

在main.c中:

在dong.c中:

方法三、相對路徑法

peng.h的絕對路徑是:E:MY_DocumentskeilC51includeddjjppkk

main.c的絕對路徑是:E:MY_DocumentskeilC51includeffdduu

dong.c的絕對路徑是:E:MY_DocumentskeilC51includekkki sdfbh

通過分析可以得到peng.h相對于main.c路徑是:

......ddjjppkk

peng.h相對于dong.c的路徑是:

........ddjjppkk

所以在main.c中修改如下:

在dong.c中修改如下:

方法四 、相對目錄+相對目錄

在有的 .c 文件中,頭文件有如下表示方法:

如有os_dbg.c,其中頭文件是這樣寫的:

#include "uCOS-IISourceucos_ii.h" ,或者寫成#include

而os_dbg.c的絕對路徑是:E:單片機系列嵌入式uCOSuCOS-ii 版uCOSII2.91USERuCOS-IIPortsARM-Cortex-M3RealView

ucos_ii.h的絕對路徑是:E:單片機系列嵌入式uCOSuCOS-ii 版uCOSII2.91USERuCOS-IISource

在keil環(huán)境中的頭文件路徑設置中有:

當前.uvproj的絕對路徑是:E:單片機系列嵌入式uCOSuCOS-ii 版uCOSII2.91MDK-ARM

可以看到, "..USER" + "uCOS-IISourceucos_ii.h"不就是ucos_ii.h相對于.uvproj 的路徑嗎?即 "..USERuCOS-IISourceucos_ii.h"。




關(guān)鍵詞: keil4頭文件路徑設

評論


技術(shù)專區(qū)

關(guān)閉