GNU 将所有 .cpp 文件编译为 .o 并包含 .h 文件
GNU make compiling all .cpp files to .o and include .h files
所以我有这样的文件夹
OS
Makefile
/include
head.h
/src
main.cpp
head.cpp
/objects
我如何使用 Makefile 将所有 .cpp 文件编译到对象文件夹,然后将所有包含 .h 的 .o 文件编译到我当前的实际 cpp program.I:
CPP_FILES := $(wildcard src/*.cpp)
H_FILES := $(wildcard include/*.h)
OBJ :=$(wildcard objects/*.o)
LIBS := -Wall
CC := -std=c++14
接下来我要输入什么来将所有这些 .cpp 文件制作成 .o 并用 .h 编译它们included.Thank你的时间
您可以使用 pattern rules(以前称为 "suffix rules")。当你使用 GNU make 时,假设 Makefile
被放置在顶层目录:
objects/%.o: src/%.cpp
$(CXX) -c $(CFLAGS) $< -o $@
在 GNU make 语法中,$<
表示依赖项(在本例中为 .cpp 文件),$@
表示目标(目标文件)。
.h
文件不需要编译,只需设置正确的包含路径作为 CFLAGS 变量包含的字符串的一部分:
CFLAGS += -I./include
所以我有这样的文件夹
OS
Makefile
/include
head.h
/src
main.cpp
head.cpp
/objects
我如何使用 Makefile 将所有 .cpp 文件编译到对象文件夹,然后将所有包含 .h 的 .o 文件编译到我当前的实际 cpp program.I:
CPP_FILES := $(wildcard src/*.cpp)
H_FILES := $(wildcard include/*.h)
OBJ :=$(wildcard objects/*.o)
LIBS := -Wall
CC := -std=c++14
接下来我要输入什么来将所有这些 .cpp 文件制作成 .o 并用 .h 编译它们included.Thank你的时间
您可以使用 pattern rules(以前称为 "suffix rules")。当你使用 GNU make 时,假设 Makefile
被放置在顶层目录:
objects/%.o: src/%.cpp
$(CXX) -c $(CFLAGS) $< -o $@
在 GNU make 语法中,$<
表示依赖项(在本例中为 .cpp 文件),$@
表示目标(目标文件)。
.h
文件不需要编译,只需设置正确的包含路径作为 CFLAGS 变量包含的字符串的一部分:
CFLAGS += -I./include