MicroStation中关于mke文件的详解

在进行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=x64

appName = HelloWorld

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

appRscs = $(o)$(appName).rsc

baseDir = $(_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社区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值