﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
6070	Incorrect warning during compilation of model with external component	Anton.Soppelsa@eurac.edu	Adrian Pop	"Dear all,

during compilation of a model using an external library (dll) on Windows. I receive incorrect warnings about the library be missing from any one of the reported folders. The point is that:

1. The library is not missing;
2. Compilation completes correctly.

It would be better not to receive the warning because it can mislead the user when debugging.

In fact, this is the last part of the reported output:
{{{
External Objects (1) 
======================================== 
1: tsmh:EXTOBJ: SHCControls.TSModel.TSModelHandle()  = SHCControls.TSModel.TSModelHandle.constructor(""C:\\Development\\shc-controls\\SHCLib\\Python\\tests\\cannonau2x2.mat"", ""Cannonau"")  type: ExternalObject SHCControls.TSModel.TSModelHandle 
 
 
post-optimization done. 


[2] 18:58:16 Symbolic Notification
The following Modelica-like model represents the back-end DAE for the 'dumpindxdae' stage:
/* This is probably not complete. */
model SHCControls.TSModel.Test
  /* system #1 */
  Real y[2]();
  Real y[1]();
equation
  /* system #1 */
  y = SHCControls.TSModel.tsmEval(tsmh, {0.5, 50000.0}, 2);
end SHCControls.TSModel.Test;

[3] 18:58:16 Translation Warning
[SHCControls.TSModel: 8:5-19:20]: Could not find library TSModel-Interface in either of:
  /usr/lib//TSModel-Interface.dll
  /usr/lib//libTSModel-Interface.a
  /usr/lib//libTSModel-Interface.lib
  /lib//TSModel-Interface.dll
  /lib//libTSModel-Interface.a
  /lib//libTSModel-Interface.lib
  /usr/lib//TSModel-Interface.dll
  /usr/lib//libTSModel-Interface.a
  /usr/lib//libTSModel-Interface.lib
  /lib//TSModel-Interface.dll
  /lib//libTSModel-Interface.a
  /lib//libTSModel-Interface.lib
  C:/Program Files/OpenModelica1.14.1-64bit//lib//omc/TSModel-Interface.dll
  C:/Program Files/OpenModelica1.14.1-64bit//lib//omc/libTSModel-Interface.a
  C:/Program Files/OpenModelica1.14.1-64bit//lib//omc/libTSModel-Interface.lib
  C:/Program Files/OpenModelica1.14.1-64bit//lib//TSModel-Interface.dll
  C:/Program Files/OpenModelica1.14.1-64bit//lib//libTSModel-Interface.a
  C:/Program Files/OpenModelica1.14.1-64bit//lib//libTSModel-Interface.lib
  %APPDATA%/.openmodelica/binaries/SHCControls/TSModel-Interface.dll
  %APPDATA%/.openmodelica/binaries/SHCControls/libTSModel-Interface.a
  %APPDATA%/.openmodelica/binaries/SHCControls/libTSModel-Interface.lib
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/mingw64/TSModel-Interface.dll
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/mingw64/libTSModel-Interface.a
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/mingw64/libTSModel-Interface.lib
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/win64/TSModel-Interface.dll
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/win64/libTSModel-Interface.a
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/win64/libTSModel-Interface.lib
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/TSModel-Interface.dll
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/libTSModel-Interface.a
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/libTSModel-Interface.lib

[4] 18:58:16 Translation Warning
[SHCControls.TSModel: 21:5-30:19]: Could not find library TSModel-Interface in either of:
  /usr/lib//TSModel-Interface.dll
  /usr/lib//libTSModel-Interface.a
  /usr/lib//libTSModel-Interface.lib
  /lib//TSModel-Interface.dll
  /lib//libTSModel-Interface.a
  /lib//libTSModel-Interface.lib
  /usr/lib//TSModel-Interface.dll
  /usr/lib//libTSModel-Interface.a
  /usr/lib//libTSModel-Interface.lib
  /lib//TSModel-Interface.dll
  /lib//libTSModel-Interface.a
  /lib//libTSModel-Interface.lib
  C:/Program Files/OpenModelica1.14.1-64bit//lib//omc/TSModel-Interface.dll
  C:/Program Files/OpenModelica1.14.1-64bit//lib//omc/libTSModel-Interface.a
  C:/Program Files/OpenModelica1.14.1-64bit//lib//omc/libTSModel-Interface.lib
  C:/Program Files/OpenModelica1.14.1-64bit//lib//TSModel-Interface.dll
  C:/Program Files/OpenModelica1.14.1-64bit//lib//libTSModel-Interface.a
  C:/Program Files/OpenModelica1.14.1-64bit//lib//libTSModel-Interface.lib
  %APPDATA%/.openmodelica/binaries/SHCControls/TSModel-Interface.dll
  %APPDATA%/.openmodelica/binaries/SHCControls/libTSModel-Interface.a
  %APPDATA%/.openmodelica/binaries/SHCControls/libTSModel-Interface.lib
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/mingw64/TSModel-Interface.dll
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/mingw64/libTSModel-Interface.a
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/mingw64/libTSModel-Interface.lib
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/win64/TSModel-Interface.dll
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/win64/libTSModel-Interface.a
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/win64/libTSModel-Interface.lib
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/TSModel-Interface.dll
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/libTSModel-Interface.a
  /C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release/libTSModel-Interface.lib
}}}
but the library path is indeed:
{{{
C:\Development\shc-controls\SHCLib\C-Cpp\Cpp-ModelicaInterface\Build\Release\win64\TSModel-Interface.dll
}}}

Moreover, some paths are printed with an extra slash at the beginning.

I do hope this is useful.

  Anton

P.S. If needed, the Modelica side of the source code is:
{{{
within SHCControls;
package TSModel
  extends Modelica.Icons.TypesPackage;

  class TSModelHandle
    extends ExternalObject;
  
    function constructor ""Gets an handle to a TSModel object loaded from file.""
      extends Modelica.Icons.Function;
      
      input String fileName;
      input String modelName;
      output TSModelHandle tsmh;
      external ""C"" tsmh = initTSModel(fileName, modelName)
       annotation(
        Library=""TSModel-Interface"",
        LibraryDirectory=""file:///C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release"");
                                //C:\\Development\\shc-controls\\SHCLib\\C-Cpp\\Cpp-ModelicaInterface\\Build\\Release
    end constructor;
  
    function destructor ""Release storage of the TSModel object.""
      extends Modelica.Icons.Function;
      
      input TSModelHandle tsmh;
      external ""C"" finalTSModel(tsmh)
       annotation(
        Library=""TSModel-Interface"",
        LibraryDirectory=""file:///C:/Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release"");
//      external ""C"" finalTSModel(tsmh) annotation(Library=""TSModel-Interface""); // If not specified looks in the default dir Library/win64
    end destructor;
  end TSModelHandle;
  
  function tsmEval ""Evaluate model at point u""
    extends Modelica.Icons.Function;
  
    input TSModelHandle tsmh;
    input Real u[:];
    output Real y[ysize];
    input Integer ysize;
    external ""C"" tsmEval(tsmh, u, size(u,1), y, size(y, 1)) annotation(Library=""TSModel-Interface"", LibraryDirectory=""file:///Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release"");
  end tsmEval;
  
  function invTsmEval ""Evaluate inverse model at point y""
    extends Modelica.Icons.Function;
  
    input TSModelHandle tsmh;
    input Real u0[:];
    input Real y[:];
    output Real u[usize];
    input Integer usize;
    external ""C"" tsmEvalInv(tsmh, u0, size(u0,1), y, size(y,1), u, size(u,1)) annotation(Library=""TSModel-Interface"", LibraryDirectory=""file:///Development/shc-controls/SHCLib/C-Cpp/Cpp-ModelicaInterface/Build/Release"");
  end invTsmEval;
  
  model Test ""Test of the TSModel package""
    
    TSModelHandle tsmh = TSModelHandle(fileName = ""C:\\Development\\shc-controls\\SHCLib\\Python\\tests\\cannonau2x2.mat"",
     modelName = ""Cannonau""); // call initTSModel
    Real u[2] = {0.5, 50e3};
    Real y[2];
  equation
  
    y = tsmEval(tsmh, u, size(y,1));
  end Test;
end TSModel;
}}}
 "	defect	assigned	high		Code Generation	v1.16.0-dev			Mahder Alemseged Gebremedhin
