繁体   English   中英

如何使用嵌入在 C++ 中的单声道编译 C# 代码?

[英]How do you compile C# code using mono embedded in C++?

你如何使用 C++ 编译 .cs 文件

我已经搜索了所有 Mono 的文档,但找不到仅从 C++ 中的嵌入式 Mono 运行时编译 C# 代码的方法。 我知道如何使用 C++ 中的嵌入式单声道函数打开 C# .exe程序集文件,但我似乎无法找到一种方法将.cs文件编译为 C++ 中的.exe

我还设法通过从 Windows 提供的 CreateProcessA() 函数调用mcs.bat文件来编译.cs文件,但是这并没有给我一种方法来记录错误,甚至检查它是否成功编译等(它也感觉像是一个黑客而不是官方解决方案)。 我需要这样做的主要原因是,我可以通过检测源代码何时发生更改以及其他条件子集来即时重新编译 C# 脚本。

有人知道使用嵌入式 Mono 运行时正确编译 C# 文件的方法吗? 在哪里可以找到这方面的文档? 目前我一直在使用这里的文档: http : //docs.go-mono.com/?link=xhtml%3adeploy%2fmono-api-assembly.html ,它提供了大部分信息。

在 DLL 中链接 Mono

另外,如果您熟悉嵌入单声道,您知道如何在 dll 中使用它吗? 我已经成功地在控制台应用程序中链接和编译它,但是当我尝试将它编译为动态库的一部分时,我得到了未解决的外部符号错误(特别是带有前缀 __imp* 的函数)。

最后,我使用 mono 将 C# 嵌入为我的游戏引擎的脚本语言,但是我不知道是否有更好(更小)的解决方案可以使用。 如果您知道任何更好的解决方案,请随时提出建议。

Mono 运行时是一个“运行时”,仅用于运行代码,但是如果您已经安装了csc命令,那么您可以使用它:

#include <cstdlib>
int main(){
   system("csc yourfile.cs")
   return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM