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 $@ $^
%.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 $@ $^
%.o:%.cpp
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o $(TARGET)
其中
$@ 表示目标文件
$^ 表示所有依赖项
$< 表示第一个文件
SRCS := $(wildcard *.cpp) 表示获取当前目录下的c文件集,放在变量SRCS中
OBJS := $(patsubst %cpp, %o, $(SRCS)) 表示将对应的c文件名转为o文件后放在下面的OBJS变量中
转载于:https://www.cnblogs.com/sssblog/p/9701091.html
总结
以上是生活随笔为你收集整理的Linux 多个cpp文件的编译(Makefile)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 跨域、ContentType组件
- 下一篇: Linux 网络配置命令:ip、ss