[英]linux - c++ makefile not using include path
我在運行我的makefile時遇到麻煩,它似乎沒有使用我指定的include路徑。 生成文件如下所示:
SHELL = /bin/sh
CC = g++
FLAGS = -std=c++0x
CFLAGS = -Wall -fPIC -g -I/include
LDFLAGS = -shared
TARGET = TNet.so
SOURCES = $(shell echo src/*.cpp)
HEADERS = $(shell echo include/*.h)
OBJECTS = $(SOURCES:.cpp=.o)
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) $(FLAGS) $(CFLAGS) $(DEBUGFLAGS) -o $(TARGET) $(OBJECTS)
clean:
-rm *.o $(TARGET
我的目錄樹如下所示:
rootfolder
/ \
src include
有任何想法嗎?
假設您的Makefile
實際上放置在rootfolder
下,並且這是編譯器調用的工作目錄,則需要指定include路徑(不是絕對路徑,而是相對路徑)
CFLAGS = -Wall -fPIC -g -I./include
要么
CFLAGS = -Wall -fPIC -g -Iinclude
除非您的項目直接位於/
下,否則應在編譯器標志中添加-Include
這個Makefile
對我Makefile
:
$ cat Makefile
CPPFLAGS = -Iinclude
CXXFLAGS = -Wall
foo: foo.cpp
$ make foo
g++ -Wall -I/include foo.cpp -o foo
它利用了已經定義的隱式規則 。 在您的情況下,要查找的標志是:
CPPFLAGS
Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
CXXFLAGS
Extra flags to give to the C++ compiler.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.