Error in compiled application, constant property can't be found

26 visualizaciones (últimos 30 días)
Simeon
Simeon el 28 de Ag. de 2025 a las 22:15
Comentada: Walter Roberson el 29 de Ag. de 2025 a las 7:16
I compiled a standalone executable using the Application Compiler but get an error when starting it because of 'Unable to resolve the name TestHelperClass.TestString'. Matlab then throws this error: MATLAB:undefinedVarOrClass. The TestHelperClass looks like this:
classdef TestHelperClass
properties (Constant)
TestString = "test"
end
end
When using this way of getting predefined strings in MATLAB it works fine but not in compiled executables. Using get-functions which return the same strings results in the exact same error so sadly this doesn't work.
Is there a workaround for this error?
  2 comentarios
dpb
dpb el 28 de Ag. de 2025 a las 22:35
Did the compiler include the m-file containing the class definition in the required files?
Simeon
Simeon el 29 de Ag. de 2025 a las 4:05

Yes it did, tried it with a different one which I added manually but still doesn’t work.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 29 de Ag. de 2025 a las 5:35
You need to create an object of class TestHelperClass and access the TestString property of that object.
Unfortunately it is not possible to subclass string class in order to hypthetically create an enumeration of type string.
  2 comentarios
Simeon
Simeon el 29 de Ag. de 2025 a las 6:37
I added a basic constructor like this:
methods
function obj = TestHelperClass()
end
end
But now I get this error 'MATLAB:scriptNotAFunction' when calling it like this:
testHelpObj = TestHelperClass;
And also for this:
testHelpObj = TestHelperClass();
Walter Roberson
Walter Roberson el 29 de Ag. de 2025 a las 7:16
file TestHelperClass.m
classdef TestHelperClass
properties (Constant)
TestString = "test";
end
methods
function obj = TestHelperClass()
end
end
end
together with separate
testHelpObj = TestHelperClass;
testHelpObj.TestString
However, you do not need the constructor in this particular case. It works to use file TestHelperClass.m
classdef TestHelperClass
properties (Constant)
TestString = "test";
end
end
The seperate assignment to testHelpObj must not be part of TestHelperClass.m

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB Compiler en Help Center y File Exchange.

Productos


Versión

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by