Linux 多个cpp文件的编译(Makefile)
Posted c++life
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 多个cpp文件的编译(Makefile)相关的知识,希望对你有一定的参考价值。
打包so文件:
CC = g++
CFLAGS=-Wall -O2 -fPIC
TARGET = libbg.so
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp, %o, $(SRCS))
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -shared -o [email protected] $^
%.o:%.cpp
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o $(TARGET)
普通编译:
CC = g++
CFLAGS=-Wall -O2
TARGET = main
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp, %o, $(SRCS))
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o [email protected] $^
%.o:%.cpp
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o $(TARGET)
其中
[email protected] 表示目标文件
$^ 表示所有依赖项
$< 表示第一个文件
SRCS := $(wildcard *.cpp) 表示获取当前目录下的c文件集,放在变量SRCS中
OBJS := $(patsubst %cpp, %o, $(SRCS)) 表示将对应的c文件名转为o文件后放在下面的OBJS变量中
以上是关于Linux 多个cpp文件的编译(Makefile)的主要内容,如果未能解决你的问题,请参考以下文章