Makefile 和 CMake
Makefile
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 文档
[] 表示可选参数 <>或直接写出 表示必须参数
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