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)
?
其中
$@ ?表示目標(biāo)文件
$^ 表示所有依賴項(xiàng)
$< 表示第一個(gè)文件
SRCS := $(wildcard *.cpp) 表示獲取當(dāng)前目錄下的c文件集,放在變量SRCS中
OBJS := $(patsubst %cpp, %o, $(SRCS)) 表示將對(duì)應(yīng)的c文件名轉(zhuǎn)為o文件后放在下面的OBJS變量中
轉(zhuǎn)載于:https://www.cnblogs.com/sssblog/p/9701091.html
總結(jié)
以上是生活随笔為你收集整理的Linux 多个cpp文件的编译(Makefile)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跨域、ContentType组件
- 下一篇: 获得 bootstrapTable行号i