在进行MicroStation的二次开发中,经常会对mke文件进行修改。让我们来看一下mke文件中的具体用法

1. 几个关键的用法
# 注释
= 宏定义
$ 宏展开
\ 续行符
/ 文件路径分割符

2. 几个必须包含
开头要加 %include mdl.mki (系统头文件)
结尾要加 %include dlmlink.mki (调用文件) 其后必须加空行,否则会报错

3. 几个解释

appObjs = $(o)$(appName)$(oext)

$(o) ---------------创建文件路径
$(appName) -------文件名
$(oext) -----------.obj后缀名


always:~mkdir $(o)~mkdir $(rscObjects)~mkdir $(reqdObjs)

当不存在时,创建文件夹


#--------------------------------------------
#   Create command table and header file
#--------------------------------------------
#$(baseDir)$(appName)cmd.h  : $(baseDir)$(appName)cmd.r#$(o)$(appName)cmd.rsc        : $(baseDir)$(appName)cmd.r

当给应用添加命令时,用于创建cmd文件的header和rsc文件
以:分割,:前面的文件依赖于:后面的文件


#---------------------------------------------------------------
#   Builds any necessary CODE modules and link them to DLL
#---------------------------------------------------------------
$(o)$(appName)$(oext)       : $(baseDir)$(appName).cpp

每增加一个cpp文件,就要增加一行


最后来看一下完整mke代码

#---------------------------------------------------------------
#    MstnCE  HelloWorld.mke
#---------------------------------------------------------------
PolicyFile = MicroStationPolicy.mki
DEFAULT_TARGET_PROCESSOR_ARCHITECTURE=x64appName = HelloWorldappObjs = $(o)$(appName)$(oext)appRscs = $(o)$(appName).rscbaseDir = $(_MakeFilePath)
mdlLibs = $(MSMDE)library/%include mdl.mki#---------------------------------------------------------------
# Create needed output directories if they don't exist
#---------------------------------------------------------------
always:~mkdir $(o)~mkdir $(rscObjects)~mkdir $(reqdObjs)#---------------------------------------------------------------
# Define macros for files included in our link and resource merge
#---------------------------------------------------------------
DLM_NO_SIGN       = 1
DLM_OBJECT_DEST   = $(o)
DLM_NAME      = $(appName)
DLM_OBJECT_FILES  = $(appObjs)
DLM_NO_DLS    = 1
DLM_NO_DEF    = 1
DLM_NOENTRY   = 1
DLM_NO_MANIFEST   = 1
DLM_DEST      = $(mdlapps)
LINKER_LIBRARIES = $(mdlLibs)bentley.lib \$(mdlLibs)mdlbltin.lib \$(mdlLibs)BentleyGeom.lib \$(mdlLibs)DgnPlatform.lib#--------------------------------------------
#   Create command table and header file
#--------------------------------------------
#$(baseDir)$(appName)cmd.h  : $(baseDir)$(appName)cmd.r#$(o)$(appName)cmd.rsc        : $(baseDir)$(appName)cmd.r#---------------------------------------------------------------
#       Generate resource files
#---------------------------------------------------------------
$(o)$(appName).rsc          : $(baseDir)$(appName).r#---------------------------------------------------------------
#   Generate MA
#---------------------------------------------------------------
$(mdlapps)$(appName).ma     : $(appRscs)$(msg)> $(o)make.opt-o$@$(appRscs)<$(RLibCmd) @$(o)make.opt~time#---------------------------------------------------------------
#   Builds any necessary CODE modules and link them to DLL
#---------------------------------------------------------------
$(o)$(appName)$(oext)       : $(baseDir)$(appName).cpp%include dlmlink.mki

参考BDN社区

MicroStation中关于mke文件的详解相关推荐

  1. mysql映射mapper_Mybatis中Mapper映射文件使用详解

    紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明. Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd.我们先大体上看看 ...

  2. linux的根文件系统中的proc文件夹详解

    什么是proc文件系统    |linux /proc目录介绍|proc中文手册 proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接 ...

  3. VScode 插件中 package.json 文件字段详解

    一.package.json文件内容 {// 插件的名字,应全部小写,不能有空格: string"name": "my-vscode-plugin",// 版本 ...

  4. abaqus dat文件 matlab_工程师联盟科普系列|ABAQUS中的各种文件类型详解-dat文件如何打开...

    ABAQUS产生几类文件:有些是在运行是产生,运行后自动删除:其它一些用于分析.重启.后处理.结果转换或其它软件的文件则被保留,详细如下: 1. model_database_name.cae 模型信 ...

  5. VMware虚拟机文件夹中各文件作用详解

    VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...

  6. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)

       本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文 ...

  7. java实现for文件删除_Java 添加、删除、替换、格式化Word中的文本的步骤详解(基于Spire.Cloud.SDK for Java)...

    Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...

  8. python setting.py_python基础教程:Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  9. Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  10. python基础教程:Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

最新文章

  1. [云炬创业基础笔记]第五章创业机会评估测试10
  2. 正则表达式元字符整理
  3. python统计提取数量_python中统计计数的几种方法和Counter的介绍
  4. vue3数据绑定显示列表数据局
  5. (篇三)C语言的冒泡排序多解、选择排序、数组合并、矩阵相加
  6. 下一代 Windows 将至,是全新的 Windows 11 还是 Windows 10 的延续?
  7. 自动驾驶_产品象限图_清洁机器人场景
  8. CAd常用的系统变量
  9. matlab窄带高斯随机信号,06实验六:窄带随机信号仿真与分析
  10. scratch作品_孩子的scratch作品只能演示?教你把它三步变为电脑软件
  11. 【参透浏览器原理】1—— 为什么明明浏览器只打开了一个页面,却出现了多个进程
  12. Mybatis中,SQLSessionFactoryBuilder使用build方法时做了哪些事?
  13. Aptana Studio3安装方式
  14. SV学习(4)——数据作用域和类型转换 $cast()
  15. C语言实现求解斐波那契数列的四种方法及优化处理(递归,迭代,特殊性质公式,矩阵快速幂)
  16. php常见的五种设计模式,PHP常见的6种设计模式
  17. 简单理解:ML、DB、NLP
  18. 如何利用pandas将速度提高10倍?
  19. STM8 ADC读取数据异常问题的解决
  20. winform数据存储的方式

热门文章

  1. UIImagePickerController本地化控件文字
  2. 小程序drawImage接口canvas生成产品海报失败
  3. ipv4 pxe 联想start_PC开机出现Start pxe over ipv4解决办法 PC重启后显示start pxe over IPv4...
  4. 精品餐饮业奢华西餐专业PPT-朴尔PPT
  5. MMA7455L笔记
  6. TPS5430正电源转正负电源 低纹波
  7. 氨基酸三字母转一个字母
  8. 20M宽带的下载速度到时有没有20MB/s?
  9. 计算机关机后风扇还转,电脑关机后cpu风扇还在转怎么办?解决电脑关机后cpu散热器还在转...
  10. mysql 模糊匹配比自己短潆字符_根据中文字符串查询拼音声母