ERROR: MATLAB R2017a cannot run RTI Connext Shapes Demo

DDS.import('ShapeType.idl','matlab', 'f')
Warning: DDS.Utilities.getRtiPaths: Unable to obtain mex compiler info. rtiddsgen preprocessor is being disabled. To correct, run mex -setup
> In DDS.Utilities.getRtiPaths
In DDS.Utilities.convertIDLtoXML
In DDS.import
INFO com.rti.ndds.nddsgen.Main Running rtiddsgen version 2.5.0, please wait ...
INFO com.rti.ndds.nddsgen.Main Done
Error using DDS.Utilities.convertDDStoMathWorksType
DDSType: int32
Error in DDS.internal.readTypesXML.Member
Error in DDS.internal.readTypesXML.Struct
Error in DDS.internal.readTypesXML.readTypesXML/readType
Error in DDS.internal.readTypesXML.readTypesXML
Error in DDS.import

5 Commenti

RTI Connext Shapes Demo appears to be https://www.rti.com/downloads/shapes-demo
Notice that the Windows version there is for 32 bit Windows.
Ah, https://www.mathworks.com/videos/installing-the-dds-support-package-r2017a-and-later--1489171911502.html is specifically R2017a or later; perhaps the instructions there will help?
I was following the same video series (https://www.mathworks.com/videos/installing-the-dds-support-package-r2017a-and-later--1489171911502.html) until i got stuck in the tutorial videos. I just installed the same rti DDS support package on the latest R2017b release and its still giving an error:
>> mex -setup C++
MEX configured to use 'Microsoft Visual C++ 2015' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required
to update your code to utilize the new API.
You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
>> clear;
DDS.import('ShapeType.idl','matlab', 'f')
ERROR: Cannot determine the location of the VS Common Tools folder.
INFO com.rti.ndds.nddsgen.Main Running rtiddsgen version 2.5.0, please wait ...
ERROR com.rti.ndds.nddsgen.Main Fail: java.lang.Exception: The preprocessor 'CL.EXE' cannot be found in your path.
If your IDL file contains preprocessor directives, be sure that 'CL.EXE'
is in your path or specify an alternative preprocessor through the use of the
flag -ppPath.
If your IDL file doesn't contain preprocessor directives you can disable the
use of the preprocessor using the flag -ppDisable
INFO com.rti.ndds.nddsgen.Main Done (failures)
Error using DDS.Utilities.convertIDLtoXML
rtiddsgen failure
Error in DDS.import
>> DDS.version
ans =
struct with fields:
major: 5
minor: 3
release: 0
revision: 0
mex -setup C
might be required.
Also note that MATLAB R2017a for MS Windows supports VS 2015 Professional but not VS 2015 Community.
Yes it's VS 2015 Professional and has C++ compiler.
I ran the command:
>> mex -setup C
MEX configured to use 'Microsoft Visual C++ 2015 (C)' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required
to update your code to utilize the new API.
You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
Sorry Sir, Did you find any solution for this kind of error? It's almost same to your error.
>> DDS.import('ShapeType.idl','matlab', 'f'); INFO com.rti.ndds.nddsgen.Main Running rtiddsgen version 2.5.2, please wait ... ERROR com.rti.ndds.nddsgen.Main Fail: java.lang.Exception: Error executing

Accedi per commentare.

Risposte (1)

You need to install a compiler suitable for your release, and run mex -setup

2 Commenti

Hi Walter! I installed a compiler on windows again but the issue wasn't resolved. Then I tried the same matlab release on Ubuntu 16.04 and I got the following error and its also related to MEX:
Error using DDS.version
Invalid MEX-file '/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64':
Missing symbol 'dlclose' required by
'/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddscore.so->/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddsc.so->/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64'
Missing symbol 'dlerror' required by
'/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddscore.so->/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddsc.so->/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64'
Missing symbol 'dlopen' required by
'/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddscore.so->/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddsc.so->/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64'
Missing symbol 'dlsym' required by
'/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddscore.so->/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddsc.so->/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_' required by
'/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddscpp.so->/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm' required by
'/home/humza/rti_connext_dds-5.3.0/lib/x64Linux3gcc5.4.0/libnddscpp.so->/home/humza/Documents/MATLAB/Add-Ons/Toolboxes/DDS_Blockset/code/mexGetVersion.mexa64'.
Error in DDS.Utilities.getRtiPaths
Error in DDS.Utilities.convertIDLtoXML
Error in DDS.import
These are the compilers for matlab R2017a on ubuntu 16.04:
To choose a different language, select one from the following:
mex -setup C++
mex -setup FORTRAN
MEX configured to use 'g++' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required
to update your code to utilize the new API.
You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
>> mex -setup FORTRAN
Error using mex
No supported compiler or SDK was found. For options, visit http://www.mathworks.com/support/compilers/R2017a/.
>> mex -setup FORTRAN
MEX configured to use 'gfortran' for FORTRAN language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required
to update your code to utilize the new API.
You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

Accedi per commentare.

Categorie

Prodotti

Richiesto:

il 23 Set 2017

Commentato:

il 24 Set 2018

Community Treasure Hunt

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

Start Hunting!

Translated by