關於Linux編譯時的路徑一些說明
阿新 • • 發佈:2018-12-09
關於Linux編譯時的路徑一些說明
如果原始檔(.c)和標頭檔案(.h)在同一個目錄
那麼就直接包含使用標頭檔案時,就直接包含就行了,不需要路徑的說明
舉例:
比如現在有main.c,test.c,test.h三個檔案,且都在同一個目錄/home/user/code下
test.h聲明瞭test.c中的函式
main.c需要使用test.c中的函式
/*main.c檔案*/
#include <stdio.h>
#include "socket_include/test.h"
如果原始檔(.c)和標頭檔案(.h)不在同一個目錄
比如現在有main.c,test.c,test.h三個檔案,分別在/home/user/code/src和/home/user/code/incline目錄下
目錄下的檔案如下:
/home/user/code/src : main.c,test.c
/home/user/code/incline: test.h
使用相對路徑
舉例:
/*main.c檔案*/
#include <stdio.h>
#include "../include/test.h"
使用絕對路徑
舉例:
/*main.c檔案*/
#include <stdio.h>
#include "/home/user/code/include/test.h"
其實推薦還是寫絕對路徑的
使用軟連結
這種發法其實就是使用絕對路徑,只不過將絕對路徑用一個快捷方式表示,這樣的話標頭檔案包含就不必寫的那麼長,特別是在檔案目錄層級非常多的情況,這種便利越能體現
擴充套件知識:
linux中預設的系統庫函式標頭檔案在/user/include目錄下的,當然也提供了一個目錄可以放自己的函式標頭檔案的目錄,/user/local/inclue
這一塊內容詳情網上很多資源的,提供參考:
https://blog.csdn.net/jiaweizou/article/details/8153897
http://blog.chinaunix.net/uid-25544300-id-3310491.html
那麼我們使用ln命令將自己的標頭檔案軟連結(相當於建立一個快捷方式)到這個目錄下,並且取名字myinclude
注意:進行軟連結的時候需要root許可權
出現紅色方框的資訊的時候表示軟連結成功
/*main.c檔案*/
#include <stdio.h>
#include "myinclude/test.h"
可以對比使用絕對路徑來看,這樣就簡化了一些