Error "building a simple MDL Application"

Hi,

I have a question about the HelloWorld example on webpage :"Building a simple MDL Application"

When I try to build it, I get the error:

MicroStation Resource Compiler 03.19.02
BMAKE: no rules to build C:\PROGRA~1\Bentley\MICROS~1\MICROS~1\mdlapps\
BMAKE: call trace
    line:   55, C:\PROGRA~1\Bentley\MICROS~2\examples\Elements\HELLOW~1\HELLOW~1.MKE

What did I do wrong?

Thanks in advance for the help.

Parents
  • Tell us the version (e.g. v10.x.y.z) of MicroStation that you are using.

    What did I do wrong?

    It's hard to say with no evidence.  What is on line 55 of your bmake file?  It's probably best if you post the  complete .mke file here.

    You might also like to compare your project with the C++ examples delivered with the SDK.  Can you build those successfully?

     
    Regards, Jon Summers
    LA Solutions

  • Here is the MKI-file. It is a copy-paste of the webpage.

  • Here is the MKI-file

    I asked for your bmake (*.mke) file, not an .mki file or a screenshot.  Use the Insert image/file/video button to attach a file.

     
    Regards, Jon Summers
    LA Solutions

  • #--------------------------------------------------------
    #    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_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

    Yes, I am currently trying with Winmerge to determine the diffences with an example "CellExplorer" supplied with the SDK.

    The SDK-examples do work in my environment.

    I use [MicroStation CONNECT Edition SDK (v10.14.00.109, Elevated User, 64-bit) [REQUIRES: Visual Studio 2017, .NET Framework 4.6.2]

    So when you look the example on the webpage you don't see a problem? Or could it a bug with Update 14 alone?

    Sorry for the wait for the MKE. I had to change it to txt

  • Your screen shot is not the file Jon requested. It is actually not a file at all.

    MaryB

    Power GeoPak 08.11.09.918
    Power InRoads 08.11.09.918
    OpenRoads Designer 2021 R2

        

  • Or could it a bug with Update 14 alone?

    I think such question makes no sense. When you are able to compile (and run) examples delivered with MicroStation SDK CE U14, the problem cannot be in MicroStation CE U14.

    So when you look the example on the webpage you don't see a problem?

    I do not see any webpage. You provided a capture of a part of some file, looking like mki or mke file. It's not enough for any analysis.

    To analyze what can be wrong, typically required are:

    • SDK shell configuration
    • .mke file
    • .mki file

    Even more useful is to create compilation log using build verbose command and to share this log. When you will analyze this log yourself, you will probably find better understand where the problem is.

    Regards,

      Jan

  • Sorry for the wait for the MKE. I had to change it to txt

    BMake files (*.mke, *.mki) are plain text files.  There's nothing to convert!

    You've made me suspicious: what editor are you using to write your bmake (*.mke) file?

     
    Regards, Jon Summers
    LA Solutions

  • Thanks I'll look into the VERBOSE output.
    The MKE-file is now in the earlier reply as a file-upload. Now you should be able to look into it

    This file and the HelloWorld example is from a howto on the communities-webpage : https://communities.bentley.com/products/programming/microstation_programming/w/wiki/52106/building-a-simple-mdl-application

    I cannot seem to get it working, while the SDK-examples work ok.

    If you have a tip, I would be most gratefull.

    I use UltraEdit as editor

  • If you have a tip, I would be most gratefull.

    As I wrote: Create verbose output and share it. It's the most detail description what is happening.

    Make file depends on shell settings, works with your source files and creates another. So any error message can be cause by missing file, file placed into wrong folder (so a tool used in the next step does not find it), using wrong extension and many other reasons.

    Regards,

      Jan

  • Now you should be able to look into it

    Based on very quick check: It looks a bit weird, because of extra spaces and indenting.

    Makefiles, which is not specific to bmake, are based on indentation to define what is macro name, rule, dependency etc.

    I see in your makefile:

    $(mdlapps)$(appName).ma     : $(appRscs)
    
    $(msg)         
    > $(o)make.opt         
    -o$@         
    $(appRscs)     
    <         
    $(RLibCmd) @$(o)make.opt         
    ~time 

    But in SDK examples, which is correct definition, is:

    $(mdlapps)$(appName).ma         : $(maRscs)
        $(msg)
        > $(rscObjects)make.opt
        -o$@
        $(maRscs)
        <
        $(RLibCmd) @$(rscObjects)make.opt
        ~time

    These two definition are completely different!

    I recommend to study Creating a Makefile and Using the bmake Utility chapter in MicroStatioAPI help file. Makefile syntax is not complicated, but unfortunately also not intuitive (which is common to all make definitions).

    With regards,

      Jan

  • There should be a blank line AFTER line 67. Blank line means using a default rule in *.mki files.

    I have corrected original wiki article for this error.



  • Thanks for the aditional topics and for the adjustments.

    However I did get an error when I add the blank line and it did work without one.

    Nevertheless thanks!

Reply Children
No Data