构建过程设计原则
- 一键式构建
- 构建可重复;——构建过程不要触及源代码文件和目录;不要污染原目录;
- 构建初始化;——构建入口应该自动clean;应该支持语义明确的clean和无参数的clean行为;
- 全量构建;
- 构建配置(配置文件);——应该使用跨平台的配置文件存放配置选项;
- 构建日志;——提供日志分级显示的信息;日志文件应该明确指出本次构建的日志;
- 构建用户;——不应依赖使用root用户进行构建;
- 构建输出文件;——输出文件命名应当准确无误导;
使用库
相关编译选项-fPIC, -fpic, -fpie, -fPIE, -shared
- 它们都是什么含义?Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义
- -fPIC和-fpic有什么区别?What is the difference between -fpic and -fPIC gcc parameters? - Stack Overflow
- 实现原理: 深度剖析 Linux 共享库的“位置无关”实现原理 - 知乎
-
静态库
使用静态库应当考虑到链接顺序的问题和重复定义的问题;
- 创建和使用多层嵌套的lib库的总结_冷秋魂的专栏-CSDN博客
动态库
【GCC】编译选项总结
【MSVC】编译选项总结
- TODO
