草庐IT

c++ - 如何将 MATLAB 的 mex 设置定向到用于 C++ 编译的 Microsoft Windows SDK? (位置设置错误)

我在WindowsVista上,想用MATLAB编译C++函数。我在系统上只有lcc编译器,运行mex-setup时可以看到:mex-setupWelcometomex-setup.Thisutilitywillhelpyousetupadefaultcompiler.Foralistofsupportedcompilers,seehttp://www.mathworks.com/support/compilers/R2011a/win32.htmlPleasechooseyourcompilerforbuildingMEX-files:Wouldyoulikemextolocatei

windows - 使用 mingw-w64 编译 mex 的链接器错误

我正在尝试将Mingw-w64设置为MATLAB2013a中的mex编译器。我的笔记本电脑采用x86_64架构并运行Windows7。我要编译的程序使用c++11风格的线程,所以我使用的是带有posix线程的mingw-w644.9.0版。根据说明我找到了here和here,我修改了我的mexopts.bat文件。代码似乎编译成功,但是链接器报错。有没有人建议我可能做错了什么?顺便说一下,我尝试使用gnumex来设置编译器,但这也没有用。这是MATLAB给出的输出和错误消息:>mex-vGomoku_mex.cpp->DefaultoptionsfilenamefoundinC:\Us

windows - 无法定义具有重复名称 "DoBenchmark"的奇怪函数,因为该函数仅在一个地方定义

(在最新的windows10下使用Matlab2018b。)我有一个文件夹Folder包含DoStuff.m其代码是:%addpath('./SubFolder/SubSubFolder');//SubSubFoldercontainsmexfiledefiningmyFunctionusedbelow%closeall;function[res]=DoStuff(param)%Functionhassamenameasthescriptdefiningitres=myFunction(param)end哪里myFunction在mexw64中定义包含在'./SubFolder/Sub

c# - WCF 中的 mex 绑定(bind)错误

我正在使用VSTS2008+C#+.NET3.0。我正在使用自托管WCF服务。执行以下语句时,出现如下“找不到绑定(bind)”的错误。我已经发布了整个app.config文件,有什么问题吗?ServiceHosthost=newServiceHost(typeof(MyWCFService));错误信息:CouldnotfindabaseaddressthatmatchesschemehttpfortheendpointwithbindingMetadataExchangeHttpBinding.Registeredbaseaddressschemesare[https].完整的应用

c++ - 如何避免重复初始化 .mex(matlab 编译代码)?

我有调用从C++代码生成的MEX的Matlab代码。C++代码在初始化时需要大量的内存分配和计算。使用静态指针,初始化仅在第一次调用时完成,并在后续调用中读取指针。在使用MatlabCompiler编译此Matlab代码之前,一切正常。现在,对MEX的后续调用(现在发生在matlab编译代码中)最终会崩溃,因为静态指针显然引用了无效内存。在这种情况下如何避免重复初始化?谢谢,狮子座 最佳答案 好问题。您可能必须将其分解为两个不同的mex函数,一个计算初始化并返回其结果,另一个执行您的函数。[heavyCompResults,othe

c++ - 将 strcmp 用于 Matlab mex 文件

我在matlab脚本中有以下代码:if(strcmp(data.task,'taskToDo'))AnalogOut(1,CurrentTime)end我想将此代码集成到我已经拥有的用于编译为.mex文件的.cpp。在.mex样式中执行此操作的简单方法是什么?更新来自Shai'sanswer,我意识到strcmp可以在.cpp文件中工作。所以我只需要稍微调整一下代码就可以让它工作:if(!strcmp(data.task,"taskToDo"))//heredata.taskisaconstchar*{AnalogOut(1,CurrentTime());}非常简单。

c++ - 读取 mex 文件中的结构数据时发生奇怪的事情

我刚才被一个很奇怪的mex错误搞糊涂了。..将我的问题归结为核心,我们最终得到以下简单的mex代码。它只显示给定的结构字段是否为空...#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){intnumElements=mxGetNumberOfElements(prhs[0]);intnumFields=mxGetNumberOfFields(prhs[0]);mxArray*tmpData;constchar*tmpName;for(intstructIdx=0;stru

c++ - Matlab Mex 代码未编译

我正在使用mex和C++重写我的一些matlab代码,以使其更快地读取大文件。我正在尝试编译代码并收到此错误。我是mex的新手,如果能帮助我发现代码无法编译的原因,我将不胜感激。提前致谢。>>mex-vread_svm.cpp**************************************************************************Warning:Neither-compatibleArrayDimsnor-largeArrayDimsisselected.Using-compatibleArrayDims.Inthefuture,MATLABw

c++ - 如果 Matlab 以 GUI 启动,如何从 MEX 文件中检查

我已经尝试自己找到这个问题的答案,并且askedmyquestionatMatlabCentral没有得到任何回应。现在我希望你们中的一个人可以帮助我解决我的问题。这是我的(改进的)问题:标题已经很好地描述了我必须做的事情:我必须从MEX文件检查Linux上的MatlabR2013a是否已在有或没有GUI的情况下启动。背景:我从Matlab运行一个C/C++程序(我可以使用源代码,但不允许更改它们,只能在必要时添加新文件!)。我写了几个(附加的)MEX文件,允许程序使用mexCallMATLAB评估m文件。现在我需要知道我必须将C/C++程序的输出定向到哪里,这取决于Matlab是在有

c++ - 使用带有 Octave 和 Visual Studio 2010 编译器的 mkoctfile 编译 .mex 或 .oct 文件

我正在尝试使用Octave环境编译基本的c++.mex和.oct文件。.mex文件只是来自matlab的mexcpp.cpp文件,您可以在MATLAB中使用edit([matlabroot'/extern/examples/mex/mexcpp.cpp']);.oct文件是[此处]上找到的简单C++示例。(http://www.gnu.org/software/octave/doc/interpreter/Getting-Started-with-Oct_002dFiles.html)我努力让visualstudio编译器设置所有环境变量,如octavewikiusingvcvarsa