我有一個subfolder1/Submain.c如何包括其他的.c內.c文件優雅
{
//initialize statements
CallFunction1();
}
subfolder2/Submain.c
{
//initialize statements
CallFunction2();
}
等。
在MainFolder
有一個make
文件,以包括所有的subfolders.Like subfolder1 subfolder2等mainfolder也有這個mainfile.h
其具有所有的功能定義(像CallFunction1
和CallFunction2
)。我知道通過實踐它不是一個好主意,有函數定義I N .h
文件。所以,我想創建一個新的文件.h
所有的函數聲明(如接口),幷包括該.H子文件夾中。但我不知道該怎麼做。有人可以請幫助。所以,更主要的是我不知道如何聯繫起來的新的.h和.C
這裏是(BIGDIR /測試/ Mainfolder/Subfolder1)make文件
include $(BIGDIR)/tests/make/Makefile.defs
TEST_NAME := test1
LCINCS += -I$(BIGDIR)/../tests/Mainfolder
C_FILES := SubMain.c
include $(BIGDIR)/tests/make/Makefile.rules
這裏是SubMain.c
#include "Main.h"
{
// do things
CallFunction1(); //this function is defined in Main.h which is in Mainfolder
}
我想修改以這樣的方式 在subfolder1/submain.c
我可以有
#include "NewMain.h"
這樣NewMain.h
擁有所有的函數聲明和
main.c
還有所有的函數定義(所以老Main.h
==>NewMain.c
)。
當前的Makefile中Mainfolder的內容是:
include $(BIGDIR)/tests/make/Makefile.defs
SUBDIRS += subfolder1
SUBDIRS += subfolder2
include $(BIGDIR)/tests/make/Makefile.rules
PS:我沒有獲得改變規則。但是我可以在子文件夾中使用Main Makefile和Makefile。
如果您向我們展示你的(最小的)的makefile這將是一個容易得多。否則,在我們告訴你如何改變它之前,我們必須猜測它做了什麼。 – Beta
絕不會。如果你將一個C文件包含在另一個C文件中,那就很不起眼。 – 2012-08-23 22:26:31
你運行'Subfolder1 /''make'和它建立可執行'test1',是這樣嗎?如果我們對'Makefile.defs'中的內容進行了一些有根據的猜測,這樣可以嗎? – Beta