0
使用makefile可以在其他目錄中使用頭文件構建程序嗎? 例如,我有一些文件(名爲client.cc),包含:使用其他目錄中的頭文件製作
...
#include "talk/examples/peerconnection/client/conductor.h"
#include "talk/examples/peerconnection/client/main_wnd.h"
...
這包括在其他目錄。我如何將它添加到我的生成文件? 在這一刻,有我的Makefile,包含:
CXX=arm-none-linux-gnueabi-g++
INC=-I/home/footniko/my/webrtcnative/trunk/
TARGET=$(shell basename `pwd`)
SOURCES=$(wildcard *.cc)
OBJECTS=$(SOURCES:%.cc=%.o)
all: $(TARGET)
$(OBJECTS): $(SOURCES)
$(TARGET): $(OBJECTS)
$(CXX) -o $(TARGET) $(LDFLAGS) $(INC) $(OBJECTS) $(LOADLIBES) $(LDLIBS)
clean:
$(RM) $(OBJECTS) $(TARGET)
.PHONY: all clean
哪裏/home/footniko/my/webrtcnative/trunk/
- 是我的頭絕對路徑。但是,當我試圖做,有這樣的錯誤:
client.cc:28:59: fatal error: talk/examples/peerconnection/client/conductor.h: No such file or directory
'include's由預處理器處理,應該可能是'CPPFLAGS'。 – user657267 2014-09-10 08:38:26
@ user657267是的,'CPPFLAGS'適用於任何事情。但OP是在做C++,所以我只想更具體。 – downhillFromHere 2014-09-10 08:41:56
如果你想具體你應該使用'CPPFLAGS',因爲這是預處理器標誌的正確變量。 'CXXFLAGS'用於將標誌傳遞給C++ *編譯器*,而不是預處理器。確保它在這裏不會有什麼區別,但是如果你有一個使用不同語言的項目並且依賴於隱式規則,或者避免讓閱讀你的Makefile的其他人感到困惑,那麼這是一個很好的習慣,內置變量可以正確使用。 – user657267 2014-09-10 08:49:46