【CMake】学习

一、 Makefile

使用makefile管理和编译c++代码

#(1)正常多文件合并编译
	g++ main.cpp factorial.cpp printhello.cpp -o main
	./main  # run
#(2)单个文件编译,若修改单个文件,则重新编译单个文件后链接
	g++ main.cpp -c #只编译一个文件
	g++ factorial.cpp  -c
	g++  printhello.cpp -c
	g++ *.o -o main  #链在一起,生成可执行文件
#(3)如果工程大,文件多,则不适用,所以用makefile;且会自动监测源文件是否已经被修改,若修改则重新编译生成
	hello: main.cpp factorial.cpp printhello.cpp 
	g++ -o hello main.cpp factorial.cpp printhello.cpp #前面是tab键
#(4) 第一个版本makefile
	$(TARGET):$(OBJ)
		$(CXX) -o $(TARGET) $(OBJ)
	main.o: main.cpp
		$(CXX) -c main.cpp
	factorial.o: factorial.cpp
		$(CXX) -c factorial.cpp
#(5) 第二个版本
   CXX = g++
   TARGET =hello
   OBJ = main.o factorial.o printhello.o
   CXXFLAGS = -c -Wall  # -Wall 将所有警告爆出
	$(TARGET):$(OBJ)
		$(CXX) -o $@ $^
	%.o:%.cpp
	  $(CXX) $(CXXFLAGS) $< -o $@  #代替(4)中的三条
	 # .PHONY:clean
	 clean:
	  	rm -f *.o $(TARGET)
#(6) 第三个版本(常用,文件夹下的cpp全部编译,若有新增cpp也不需要修改makefile)
   CXX = g++
   TARGET =hello
   SRC = $(wildcard *.cpp)
   OBJ = $(patsubst %.cpp,%.o,$(SRC))
   CXXFLAGS = -c -Wall  # -Wall 将所有警告爆出
   XXX
   XXX

二、 CMake

1)自己写CMakeLists.txt

2)CMake:帮我们生成Makefile #执行make #执行cmake

3) 执行make,生成可执行文件
4)执行make clean
创建build文件夹,cmake… ,这样的好处,所有生成的文件都在build里面,删除好删;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值