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_64i386arm
$(TargetOS)目标操作系统(如 win64linuxdarwin
$(TargetFile)目标可执行文件的完整路径
$(BuildMode)当前构建模式名称(如 DebugRelease
$(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

本文由 王守红 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论