Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法从C#执行编译的matlab可执行文件

无法从C#执行编译的matlab可执行文件
EN

Stack Overflow用户
提问于 2012-08-21 14:51:09
回答 1查看 1.1K关注 0票数 1

对于我正在开发的一个模块,我收到了一个编译好的Matlab可执行文件(注意,它是一个独立的.exe,而不是.dll或类似的东西),我必须执行它才能为我做一些分析工作。

工作流程是创建一个输入文件(普通的、简单的.csv格式),执行.exe并解析由Matlab可执行文件生成的输出文件(也是.csv)。

我已经对输入文件生成和输出文件解析进行了测试,如果我自己这么说的话,它们工作得很好。但是我在运行Matlab可执行文件时遇到了一些问题。我已经安装了正确的MCR,我可以双击可执行文件,它就会像预期的那样运行。但是使用以下代码,可执行文件就不能正确执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    var analyzer = new Process
    {
        StartInfo =
        {
            FileName = Path.Combine(WorkDirectory, "analyzer.exe"),
            CreateNoWindow = false,
            WindowStyle = ProcessWindowStyle.Hidden,
            UseShellExecute = false, RedirectStandardError = true, RedirectStandardOutput = true // These lines were added for debugging purposes
        }
    };
    analyzer.Start();
    punProcess.WaitForExit();
    string debuginfo = punProcess.StandardOutput.ReadToEnd();
    string debuginfo2 = punProcess.StandardError.ReadToEnd();

我从"debuginfo“中提取的文本如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     {Warning: Name is nonexistent or not a directory: C:\MATLAB\R2009b\toolbox\pun.} 
     {> In path at 110
        In addpath at 87
        In startup at 1} 
     {Warning: Name is nonexistent or not a directory:
     C:\MATLAB\R2009b\toolbox\pun\pun.} 
     {> In path at 110
        In addpath at 87
        In startup at 2} 

我从"debuginfo2“中提取的文本是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     {Error using textscan
     Invalid file identifier.  Use fopen to generate a valid file identifier.

     Error in readin (line 4)

     Error in Analyzer (line 12)

     } 
     MATLAB:FileIO:InvalidFid

这些问题是由我的代码引起的吗?它们是由于通过C#使用它的上下文造成的吗?或者分析器本身可能有问题?我无法访问分析器可执行文件的源代码,因此无法调试该部分。

发生的错误,可能是因为给出的警告,以及我遗漏了某种引用(可能是对MCR的引用?)当我双击它(或者从cmd运行它,也像一个咒语)时,它是隐式可用的吗?

工作目录已签出。我可以看到输入文件是由先前的C#代码创建的,也可以看到可执行文件被复制到那里。因此,问题不是由于在正确的位置准备正确的文件时出错造成的。

干杯,Xilconic

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-22 09:40:08

正如Dmitriy Reznik所评论的,指定StartInfo的WorkingDirectory解决了我遇到的问题。应该是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var analyzer = new Process
{
    StartInfo =
    {
        FileName = Path.Combine(WorkDirectory, "analyzer.exe"),
        WorkingDirectory = WorkDirectory
        CreateNoWindow = false,
        WindowStyle = ProcessWindowStyle.Hidden,
        UseShellExecute = false, RedirectStandardError = true, RedirectStandardOutput = true // These lines were added for debugging purposes
    }
};
analyzer.Start();
punProcess.WaitForExit();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12057558

复制
相关文章
go windows编译linux可执行文件
高久峰
2023/06/18
1.2K0
matlab GUI 打包成exe可执行文件
App 设计工具是MATLAB R2016a推出的应用程序设计工具,和GUIDE一样,它也是一个可视化集成设计环境。除了提供和 GUIDE 类似的标准用户界面组件,还提供了和工业应用相关的组件,如仪表盘、旋钮、开关、指示灯等。使用App设计工具可以开发出操作界面友好、可以共享的MATLAB应用模块。
用户9925864
2022/07/27
4K0
matlab GUI 打包成exe可执行文件
cmake 指定编译特定可执行文件
最近进行编译项目,但是项目中有很多可执行文件;每次编译起来比较费时,下面一组代码可以指定特定的编译目标进行编译,而不用编译所有目标;
西湖醋鱼
2020/12/30
1.6K0
C代码 从源代码到可执行文件——编译全过程解析
程序的生命周期从一个高级C语言程序开始,这种形式能够被人读懂,却不能被机器读懂,为了在系统上运行这个程序,该源程序需要被其他程序转化为一系列低级机器语言指令,然后将这些指令按照可执行目标程序的格式打包并以二进制磁盘文件形式存储起来。 在Linux系统下,可用以下指令完成源程序到目标程序的转化:
用户2930595
2018/08/23
2.2K0
C代码 从源代码到可执行文件——编译全过程解析
从源代码到可执行文件
在理解一个源代码是如何成为可执行文件时,我简单的回顾下硬件层面、操作系统层面的知识。
全栈程序员站长
2022/07/15
3250
C#在.NET编译执行过程
1..NET语言的编译器接受源代码文件,并生成名为程序集的输出文件。 程序集要么是可执行的,要么是DLL 程序集里的代码并不是本机代码,而是一种名称为CIL的中间语言 程序集包含如下信息: 程序的CIL 程序中使用的类型的元数据 对其他程序集引用的元数据 2.   程序的编译过程    程序的CIL直到它被调用运行时才会被编译成本机代码。在运行时,CLR执行下面步骤: 检查程序集的安全特性 在内存中分配空间 把程序集中的可执行代码发送给实时编译器(JIT),把其中的一部分编译成本机代码。 程序集中的可执行
hbbliyong
2018/03/06
1.3K0
C#在.NET编译执行过程
C语言程序编译成可执行文件的过程
现在我们将执行以下命令将源文件(hello.c)转化为可执行目标文件(hello):
魔王卷子
2019/05/28
2.9K0
C#在.NET编译执行过程
程序的CIL直到它被调用运行时才会被编译成本机代码。在运行时,CLR执行下面步骤:
用户8983410
2021/09/26
7220
转--如何压缩Golang 编译出的可执行文件大小
先给结论:可以减少到原来的29% 最近在写一个TLScat小工具 Github.com/mengzhuo/tlscat 源文件仅仅2KB不到,但是用 go build tlscat.go 编译出来的有
李海彬
2018/03/21
2.4K0
转--如何压缩Golang 编译出的可执行文件大小
go编译后可执行文件压缩神器upx使用小结
无意中发现一篇文档中讲到如何压缩go编译后的二进制文件,发现了upx这个工具,体验了一把,真的是神器
追马
2020/07/06
2.8K0
可执行文件的组成
在 ADS 下,可执行文件有两种,一种是.axf 文件,带有调试信息,可供 AXD 调试工具使用.另一种是.bin
全栈程序员站长
2022/09/20
6590
『Python』Python编译成计算机可执行文件(Windows计算机可执行文件exe,Linux 计算机可执行文件elf,Mac计算机可执行文件mach-O)
Python 程序都是脚本的方式,一般是在解析器里运行,如果要想要给别的计算机使用,需要提前安装Python解析器和相关包才可以运行,为了在 Windows(或其它系统里) 里方便发布,我们将.py文件,编译成一个可执行文件,并且打包所需要库文件,只需要点击一个可执行文件运行,而无需安装Python和相关库文件。这样发布给用户使用何不美哉。
风骨散人Chiam
2020/10/28
3.5K0
可执行文件压缩
最近看Rust相关东西的时候看到一篇关于压缩可执行文件的文章。压缩可执行文件对嵌入式开发特别有用,但是延伸一下用来减少我们游戏行业里预编译的工具二进制包大小和Android/iOS的库也是蛮有用的。
owent
2018/08/01
2.4K0
2020-11-04 go test编译成可执行文件
此方法主要是想进一步去在android上执行, 还看到一种在android手机上执行比较靠谱的方法,只是没有来得及验证 running_golang_on_android
oracle3
2022/04/22
6220
从.go文本文件到可执行文件
Go 是一门编译型语言,我们平时所编写的 *.go 文本文件称为源文件,源文件里面的内容就是我们的源代码。
gopher云原生
2022/11/22
6330
从.go文本文件到可执行文件
C++源文件从文本到可执行文件经历的过程
对于C++源文件,从文本到可执行文件一般需要四个过程: 预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。 产生.ii文件。 编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件(.s文件). 汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件 (.o或.obj文件) 链接阶段:将多个目标文件及所需要的库连接成最终的可执行目标文件(.out或.exe文件)。
海盗船长
2020/08/28
6640
用GCJ编译Java源文件成脱离JRE的exe可执行文件
一、下载GCJ 到 http://www.thisiscool.com/gcc_mingw.htm 可以看到你有个版本 GCC/GCJ 3.4 GCC/GCJ 4.02 不管三七四十八,都下载下来先:)
阿敏总司令
2019/02/28
1.9K0
如何使用Mangle修改已编译的可执行文件以绕过EDR检测
 关于Mangle  Mangle是一款功能强大的代码处理和安全测试工具,该工具基于Golang开发,可以帮助广大研究人员从各个方面对已编译好的可执行程序(.exe或DLL)进行修改,从而实现EDR检测绕过。  工具运行机制  Mangle可以删除基于字符串的入侵威胁指标(IoC),并将其替换为随机字符,然后通过增加文件大小来避免EDR检测,而且还可以通过合法文件来克隆代码签名证书。在整个过程中,Mangle可以帮助加载器绕过磁盘和内存扫描工具的检测。  工具安装  首先,该工具基于Golang开发,因此我
FB客服
2023/03/29
8070
如何使用Mangle修改已编译的可执行文件以绕过EDR检测
PyCharm生成可执行文件
Pycharm生成可执行文件 安装pyinstaller Windows下: pip install pyinstaller Linux下: sudo pip3 install pyinstaller 打开PyCharm终端,在终端输入: pyinstaller -F -w main.py # main.py是入口文件名
Marigold
2022/06/17
8520
[Go] Windows/Linux/Mac交叉编译成指定系统的二进制可执行文件
一般我们在windows获取mac开发代码 , 编译的时候如果要编译成指定系统的二进制文件 , 这时就需要使用交叉编译
唯一Chat
2021/04/20
6.9K0

相似问题

从c#调用Matlab编译函数时的执行错误

10

从编译的可执行文件执行函数

21

matlab mcc编译的独立可执行文件:无法识别的函数或变量

19

从Matlab运行C可执行文件

30

从PHP调用MATLAB可执行文件

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文