Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在多个目录中生成文件源_C++_Makefile - Fatal编程技术网

C++ 在多个目录中生成文件源

C++ 在多个目录中生成文件源,c++,makefile,C++,Makefile,我见过一些将makefile与多个源目录一起使用的示例,但仍然无法将其实现到我的makefile中 目前,我在/src/文件夹中拥有所有源文件,我希望能够编译/src/中的子文件夹,例如/src/modules 我正在使用: NAME = 'AI' SRC = src TGT = obj PRG = application INCLUDES = -Iinclude ... LIBRARIES = -L ... CXXFLAGS = -O2 -std=c++0x $(INCLUDES) $(LIB

我见过一些将makefile与多个源目录一起使用的示例,但仍然无法将其实现到我的makefile中

目前,我在
/src/
文件夹中拥有所有源文件,我希望能够编译
/src/
中的子文件夹,例如
/src/modules

我正在使用:

NAME = 'AI'
SRC = src
TGT = obj
PRG = application
INCLUDES = -Iinclude ...
LIBRARIES = -L ...
CXXFLAGS = -O2 -std=c++0x $(INCLUDES) $(LIBRARIES)
SOURCES = $(wildcard $(SRC)/*.cpp)
ENDFLAGS = -ljvm -lcurl
NOWARNINGS = -Wno-unused-variable -Wno-unused-result
OBJS = $(addprefix $(TGT)/, $(notdir $(SOURCES:.cpp=.o)))

$(TGT)/%.o: $(SRC)/%.cpp
    $(CXX) $(CXXFLAGS) -c $< -o $@ $(NOWARNINGS)

$(PRG)/$(NAME): $(OBJS)
    $(CXX) $(LIBRARIES) $(OBJS) -o $@ $(ENDFLAGS) $(NOWARNINGS)
NAME='AI'
SRC=SRC
TGT=obj
PRG=应用程序
include=-i包括。。。
库=-L。。。
CXXFLAGS=-O2-std=c++0x$(包括)$(库)
SOURCES=$(通配符$(SRC)/*.cpp)
ENDFLAGS=-ljvm-lcurl
NOWARNINGS=-Wno未使用的变量-Wno未使用的结果
OBJS=$(addprefix$(TGT)/,$(notdir$(来源:.cpp=.o)))
$(TGT)/%.o:$(SRC)/%.cpp
$(CXX)$(CXXFLAGS)-c$<-o$@$(NOWARNINGS)
$(PRG)/$(名称):$(OBJS)
$(CXX)$(库)$(OBJS)-o$@$(ENDFLAGS)$(NoWarning)

这里的问题到底是什么?如何将这些子目录源文件放入makefile中的
SOURCES
变量?我希望SRC的子目录也被编译。直接编译成
$(TGT)
?编译到镜像子目录中?是否编译到当前(Makefile)目录?在源文件旁边编译?要直接将它们编译成
$(TGT)
,您只需将
$(通配符$(SRC)/sub dir/*.cpp)
添加到
赋值行中即可。如果你想要更自动化的东西,那就看看。