Я пытаюсь создать пакет исходного кода, содержащий файлы m и исходные файлы С++ (cpp) в Matlab.
В исходной папке есть простой скрипт Matlab для компиляции всех файлов cpp в одну папку:
function compileDir_simple(Cdir)
if nargin<1
Cdir=pwd;
end
files = dir(fullfile(Cdir,'*.cpp'));
oldDir=pwd;
cd(Cdir);
for j=1:length(files)
try
cm = sprintf('mex -largeArrayDims %s',files(j).name);
disp(cm);
eval(cm);
catch
disp(lasterr);
disp('IGNORE if the file is a C++ file which is not a mex file (ie without a mexFunction inside)');
end
end
cd(oldDir);
Внутри он использует «mex -largeArrayDims». Однако моя проблема заключается в том, что когда я оцениваю этот оператор, Matlab пытается создать выбранные файлы с помощью компилятора C, который содержится в самом MATLAB. Когда я вызываю mex -setup, я вижу:
mex -setup Пожалуйста, выберите компилятор для создания файлов внешнего интерфейса (MEX):
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\MATLAB\R2010a\sys\lcc
[0] None
Compiler:
Я установил компилятор Bloodshed C++ и добавил его папку bin ( в переменные Windows Environment, но все равно не вижу своего компилятора C++ в списке установленных компиляторов. Появляется только Lcc-win32. Будет уместно сказать, что это мой первый опыт при компиляции mex-файлов.