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\a20190115_can_rs485_lpc1766_01(locked)\UserCode\Source
那么Project這個文件夾所應表示的相對路徑應為:
…\Project
那么Source這個文件夾所應表示的相對路徑應為:
…\Source
因此可以判定,當前路徑不是main.c文件所在的位置。
假設當前路徑時LPC1700.uvproj文件所在位置,即E:\05_Program\03_Keil4\a20190114_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 头文件路径设置摸索和总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 香港途径巴黎转机至波哥大
- 下一篇: linux系统查看IP地址,不显示IP地