Lazarus IDE 内置了很多宏(Macros),为了方便平时的使用备查,总结如下
一、项目相关宏
| 宏名 | 说明 |
|---|
$(ProjPath) | 项目 .lpi 文件所在目录 |
$(ProjFile) | 项目主源文件(.lpr)的完整文件名 |
$(ProjOutDir) | 项目输出目录(.ppu 文件生成位置) |
$(ProjSrcPath) | 项目源文件目录 |
$(ProjIncPath) | 项目包含文件目录 |
$(ProjUnitPath) | 项目单元文件目录 |
$(ProjPublishDir) | 项目发布目录 |
二、IDE 与环境相关宏
| 宏名 | 说明 |
|---|
$(LazarusDir) | Lazarus 源码目录(在环境选项中设置) |
$(PrimaryConfigPath) | IDE 主配置文件目录 |
$(SecondaryConfigPath) | IDE 次配置文件目录 |
$(FPCVer) | 当前使用的 Free Pascal 编译器版本号 |
$(Make) | make 工具的完整路径 |
$(InstantFPCCache) | instantfpc 缓存目录 |
三、目标平台与编译相关宏
| 宏名 | 说明 |
|---|
$(TargetCPU) | 目标 CPU 架构(如 x86_64、i386、arm) |
$(TargetOS) | 目标操作系统(如 win64、linux、darwin) |
$(TargetFile) | 目标可执行文件的完整路径 |
$(BuildMode) | 当前构建模式名称(如 Debug、Release) |
$(FPCTarget) | 目标平台的完整标识(如 x86_64-win64) |
四、路径与文件名处理函数宏
| 宏名 | 说明 |
|---|
$(Ext(filename)) | 提取文件扩展名(如 .exe) |
$(NameOnly(filename)) | 提取文件名(不含扩展名) |
$(Path(filename)) | 提取文件路径(不含文件名) |
$(MakeDir(filename)) | 为路径添加目录分隔符 |
$(MakeFile(filename)) | 移除路径末尾的目录分隔符 |
$(MakeExe(filename)) | 根据目标平台自动添加可执行文件扩展名 |
五、包相关宏(用于 Lazarus 包)
| 宏名 | 说明 |
|---|
$(PkgDir(id)) | 指定包(.lpk)所在目录 |
$(PkgOutDir(id)) | 指定包的输出目录 |
$(PkgSrcPath(id)) | 指定包的源文件目录 |
典型使用示例
- 单元输出目录:
lib/$(TargetCPU)-$(TargetOS)/$(BuildMode) - 可执行文件输出:
bin/$(TargetCPU)-$(TargetOS)/$(NameOnly($(ProjFile))) - 包含路径:
$(ProjPath)/include
还不快抢沙发