从Mono上运行的C#进程运行C++应用程序.运行检测器错误
本文关键字:运行 应用程序 C++ 检测器 错误 进程 Mono | 更新日期: 2023-09-27 18:26:58
我目前正在将一个工具移植到Linux。我正在使用mono来实现这一点,并且已经运行了主要工具。然而,该工具调用了另一个程序,该程序是用C++编写的,并在Linux上使用g++进行本机编译。我在移植它时遇到了很多困难,但要让它正常工作和运行(使用./othertool.exe按预期运行)
然而,当尝试在Mono上运行原始工具时,它无法启动另一个工具,从而出现错误。
run-detectors: unable to find an interpreter for .../othertool.exe
我不知道为什么会发生这种情况,因为当使用hello世界进行测试时,我通过在Mono上从C#调用C++程序来运行它。我正在使用Process类运行另一个工具(请参阅代码),该类与helloworld示例配合良好。
var process = new Process
{
StartInfo =
{
FileName = baseDir +
Path.DirectorySeparatorChar +
"tools" +
Path.DirectorySeparatorChar +
"othertool.exe",
Arguments = arguments.ToString(),
UseShellExecute = false
}
};
process.Start();
process.WaitForExit();
有人知道为什么会发生这种事吗?谷歌没有任何收益,所以我想这可能并不常见。请随意询问更多信息或澄清,因为我可能遗漏了一些内容。
好吧,原来我使用的是其他工具的Windows构建版本,而不是Linux版本。谁让这种事发生的?使用正确的选项时运行"良好"。–Cameron
酷的运行检测器/解释器故障通常(总是?)与PE可执行文件(.exe
)问题(以及其他非Linux二进制文件)有关,假设您所在的Linux disto(如Ubuntu)支持启动PE格式,但没有安装Wine之类的软件,则会出现故障。IMHO:将非PE/非CIL文件命名为.exe
在Linux上是不好的形式。。。–nbsp;Sushi Hangover