MATLAB: Error Initializing MCR: CTF file…Could not open source package

could not open source packagectf fileMATLAB Compilermcr

The full message I got from running my application executable is:
Error Initializing MCR: CTF file 'C:\Users\..\AppData\Local\Temp\mathworks_tmp_4916_32418' failed to open for 'Read' access. Error message: Could not open source package'
I am using MatLab 2013b (8.2.701) 64bit, MCR version 8 to compile a simple matlab file into a C shared library. The command I supplied was mcc -B csharedlib:libmatrix solution.m which Matlab then generated these files:
libmatrix.c, libmatrix.lib, libmatrix.dll, libmatrix.h, and libmatrix.exp libmatrix.export
In my Visual Studio C++ project (platform set to x64, Windows7.1 SDK), I made sure to have include, lib, and dll directories setup properly so everything seemed OK during compilation.
Here's the partial code from my .c file:
#include "libmatrix.h"
mclmcrInitialize();
if( !mclInitializeApplication(NULL,0) ) {
fprintf(stderr, "Could not initialize the application.\n");
return -1;
}
if (!libmatrixInitialize()){
fprintf(stderr,"Could not initialize the library.\n");
printf("the error msg: %s\n", mclGetLastErrorMessage());
return -2;
}
mlfSolution(2, &MX, &MD, MI, MJ, MS, MINFO, MY, MLB, MUB);
libmatrixTerminate();
mclTerminateApplication();
I have no clue why it's not working, any help will be greatly appreciated.

Best Answer

Hi,
This happens when you include the MATLAB compiler generated C/C++ source files (LIBNAME.c or LIBNAME.cpp) into your project. When your call for initializing the DLL is made it calls the function from the C/C++ source file instead of the one in the DLL. So then it looks for the CTF in the EXE (where it's actually not) instead of in the DLL.
So long story short: Do not include the .c/.cpp files generated by MATLAB Compiler into your project. Only the header file and .lib file is needed.