makefile目錄
⑴ linux Makefile 如果寫最頂層的Makefile,可以讓它執行各個子目錄的Makefile
就如你說的這么弄……不過不加 -f xxxx 就是用默認的 Makefile。你寫的 make Makefile 會讓 make 去執行默認 makefile 裡面的專 Makefile 段落的東西……
很多軟屬件都是這么實現的多 makefile 區別使用。
不過,這技術含量有點低……為什麼不去根據需要寫一個 configure 來生成 makefile ?
而且好像似乎 configure 和 makefile 都有軟體可以幫你生成……
⑵ makefile中怎麼設置頭文件的路徑在線等
你源代碼抄包含頭文件的方式也襲要和你的CFLAGS的路徑配合,舉例:
1 源文件:#include <pcl/point_types.h> makefile: -I/test/ROS/ros/fuerte/include/
2 源文件:#include <point_types.h> makefile: -I/test/ROS/ros/fuerte/include/pcl
估計你源文件是1的情況,makefile又是2的情況,所一出問題了。
⑶ 如何在Makefile文件中判斷目錄是否存在
1. 調用shell的函數進行判斷
exist = $(shell if [ -f $(FILE) ]; then echo "exist"; else echo "notexist"; fi;)
ifeq (exist, "exist")
#do something here
endif當然,這個方法很土,但是能夠工作!!
2. 使用makefile的函數專進行判斷ifeq ($(FILE), $(wildcard $(FILE)))
#do something here
endif $(wildcard $(FILE))的意思屬是當前路徑下的文件名匹配FILE的文件展開。假設當前路徑下存在a.c 和 b.c,那麼執行src=$(wildcard *.c)
src的值就為a.c b.c;如果不使用通配符,比如src=$(wildcard c.c);那麼就是要展開當前路徑下,文件名為c.c的文件,因為當前路徑下文件不存在,因此src為空字元串。
⑷ makefile /是指示哪個目錄
源碼的頂層目錄
⑸ c文件在不同目錄的情況makefile怎麼寫
c文件在復不同目錄的情況makefile怎麼寫
假設制有下面幾個c++文件:
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要連接庫文件
main.c 主函數, main.c 包含了兩個頭文件 wherewhen.h and countdown.h
1、第一種編譯方法:
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可執行文件myprogram
2、第二中編譯方法, 分別編譯各個文件:
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
⑹ linux 一個目錄可以有幾個Makefile假如可以有多個,應該如何做
就如你說的這么弄……不過不加 -f xxxx 就是用默認的 Makefile。你寫的 make Makefile 會讓 make 去執行默認 makefile 裡面的 Makefile 段落的東西……
很多軟體都是這么實現的多 makefile 區別使用。
不過,這技術含量有點低……為什麼不去根據需要寫一個 configure 來生成 makefile ?
而且好像似乎 configure 和 makefile 都有軟體可以幫你生成……
⑺ 如何在makefile中指定頭文件目錄
1、首先在目錄HelloMakefile下,創建測試文件main.c。
⑻ makefile文件怎麼能將位於不同目錄下 的文件一起編譯
test.h不存在是抄因為你沒有給指定襲test.h的路徑,因為沒有指定的話頭文件搜索會以這個順序
1,當前目錄
2,系統目錄
所以 你現在有兩個辦法
1,在包含頭文件的時候 以當前目錄開始
也就是說你需要把這里#include "test.h" 改成#include "./math/test.h"
2,在makefile中用 -I來指定搜索目錄
比如makefile中這樣寫 gcc -I ./math ......其他亂七八糟參數