GCC

常用指令

  • -g :生成调试二进制文件
  • -DDEBUG=10 :设置宏的值
  • -I:include,添加头文件,如-I/home/user/include
  • -l:直接链接静态库,类似-lfmt -lpthread
  • -L:编译程序按照指定的路进去寻找库文件,一般的在-L的后面可以一次用-l指定多个库文件。如-L../lib
  • -D:设置宏,类似-D SSL

makefile

固定变量

  • $^ 表示所有的依赖文件
  • $@ 表示生成的目标文件
  • $< 代表第一个依赖文件

.PHONY

  • 标识某个是目标而不是命令
.PHONY: clean ALL

@+指令

  • 隐藏指令执行结果(不显示到输出)

demo

all:main

cc=g++
obj_source=./main.cpp ../util/config.cpp ../server/game/game.cpp
obj=main
header=-I../util
link=-lfmt
.PHONY:main

main: $(source)
	$(cc) -g $(obj_source) -o $(obj) $(link) $(header)


[!quote] 参考 https://zhuanlan.zhihu.com/p/575852387