返回顶部

Makefile 和 CMake

Makefile

https://makefiletutorial.com/

make精髓

 

 

1,如果target存在,将不会执行;反之,则执行

2,如果依赖改变,即使target存在也会重新执行

make clean

注意clean 不是make的关键字 | 一般clean要放在最下面 | 如果存在一个名叫clean的文件 那么make clean 命令将失效

 

make 变量

 

 

 

 

 

Make对双引号、单引号不敏感,只是将它们当做普通字符  | 引号对bash 有用

make 特殊变量

$@ 遍历时的每一个target 

$?比target还新的依赖列表

$^ 所有的依赖列表

 

 

 

CMake

https://cmake.org/cmake/help/latest/

CMake 入门实战 | HaHack

CMake 文档

[] 表示可选参数  <>或直接写出  表示必须参数

 

CMake中的public,private,interface

 

例如:target_include_directories(target  X ${CMAKE_CURRENT_SOUCE_DIR}) 意思是

 

如果X是private,外部拿不到该目录,内部拿到该目录

如果X是interface,外部拿到该目录,内部拿不到该目录

如果X是public,外部拿到该目录,内部拿到该目录

 

find_package 

 

find_library 

 

cmake 真实项目  https://github.com/flameshot-org/flameshot

后续学习

sudo apt install qt5-default qttools5-dev 

libqt5svg5-dev

 

posted @ 2023-01-22 20:03  Zcb0812  阅读(31)  评论(0编辑  收藏  举报