използвайки визуален C++ компилатор в matlab

инсталирах два компилатора в Matlab: LCC и Visual C++ 2008

искам да заредя C++ заглавен файл в matlab, но когато искам да направя това, matlab използва LCC вместо

Visual C++ и ми дава някои предупреждения.

използвах:

 mex -setup
 mbuild -setup

но Matlab все още използва LCC за зареждане на моя C++ заглавен файл

>> loadlibrary('DLLing.dll', 'DLLTutorial.h')

Предупреждение: Съобщение от C предпроцесора:

Грешка на lcc предпроцесора: C:\Users\MAHNAZ\Documents\MATLAB\DLLTutorial.h:3 Не може да се намери включен файл

Как мога да кажа на Matlab, че използва визуален c++ компилатор вместо LCC??


person mahnaz0098    schedule 10.08.2012    source източник


Отговори (3)


Каква версия на MatLab използвате? Може да не предполага версията на Microsoft SDK, която сте инсталирали на вашия компютър. Това всъщност не е отговор, но все още не мога да публикувам коментари.

person Community    schedule 10.08.2012
comment
използвам Matlab 7.6.0(R2008a) и имам инсталиран Visual c++ 2008, това е един от компилаторите, които R2008a поддържа - person mahnaz0098; 11.08.2012
comment
Може би има нещо нередно с инсталирането на Visual C++ '08? Опитахте ли да го преинсталирате? Ако го направите, уверете се, че сте избрали 32-bit. Може би нещо се е объркало при инсталирането. - person ; 13.08.2012

Според вашето описание, след като въведете mex -setup, първото нещо, което MATLAB трябва да ви попита:

Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n? 

След това трябва да натиснете y и след това трябва да видите списък с налични компилатори. Изберете правилния от тях.

person Autonomous    schedule 11.08.2012
comment
правя всичко това правилно. използвам mex -setup и след това избирам визуален c++ компилатор, но не знам защо matlab използва lcc, когато искам да използвам функцията loadlibrary. - person mahnaz0098; 11.08.2012

С каква версия на Windows работите, 32 или 64 битова е (въпрос както за Windows, така и за инсталираната версия на MATLAB)?

Преглеждайки архивираната документация за R2008a (трябва да сте влезли, за да видите страницата), тя изглежда, че LOADLIBRARY изисква VS2005 на 64-битови платформи (може би по подразбиране е LCC, ако не е наличен). Истината е, че не се казва изрично как се определя какъв компилатор да се използва. (Ако сте готови, можете да edit loadlibrary.m и да проследите изпълнението, за да видите защо в крайна сметка извиква LCC вместо Visual C++)

Сравнете това с текущата помощна страница за R2012a, където ясно се казва, че трябва изберете компилатора с mex -setup.

Имайте предвид, че LCC компилаторът вече няма да се доставя с бъдещи версии.

person Amro    schedule 11.08.2012
comment
благодаря, използвам widows 32 bit и Matlab 32 bit, видях списъка с поддържани компилатори за R2008a 32 bit и visual c++ 2008 е в списъка, но за функцията loadlibrary не знам защо не работи?? - person mahnaz0098; 11.08.2012