C++ 嵌入Mono:找不到Mono-2.0.dll
我正在使用VS2012安装windows 8.1 我正在尝试将Mono CLR嵌入到C项目中。出了一些问题后,我现在正在编译它。 我在文章中使用了.def文件: 请注意,该文件显示:LIBRARY mono-2.0.dll 当我运行它时,我得到一个错误,mono-2.0.dll无法定位 我已经安装了mono-3.2.3,但在任何地方都看不到mono-2.0.dllC++ 嵌入Mono:找不到Mono-2.0.dll,c++,mono,embed,mono-embedding,C++,Mono,Embed,Mono Embedding,我正在使用VS2012安装windows 8.1 我正在尝试将Mono CLR嵌入到C项目中。出了一些问题后,我现在正在编译它。 我在文章中使用了.def文件: 请注意,该文件显示:LIBRARY mono-2.0.dll 当我运行它时,我得到一个错误,mono-2.0.dll无法定位 我已经安装了mono-3.2.3,但在任何地方都看不到mono-2.0.dll 哪个mono.dll实现了mono\uxxxapi(比如mono\ujit\uinit) 我是否需要设置env vars以使操作系统
Boehm
和SGen
的链接现在重定向到同一网页)
我从来没有在Windows中使用过嵌入式Mono(我总是使用Linux),但可能会将.def
文件中的名称更改为程序可以使用的库名称
例如,对于Boehm,您必须下载并编辑它,如下所示:
; file generated by create-windef.pl
LIBRARY libmonoboehm-2.0.dll
EXPORTS
对于SGen,只需按以下方式下载并编辑:
; file generated by create-windef.pl
LIBRARY libmonosgen-2.0.dll
EXPORTS
这两者的区别是什么?它仍然说找不到程序集(现在是libmonosgen-2.0.dll)。我需要设置环境变量吗?@obiwanjacobi关于第一个问题:区别在于GC实现。斯根应该比博姆更好。关于第二个:这取决于你是如何编译你的程序的。例如:您为
CFLAGS
和LDFLAGS
选项使用了哪些路径?或者更好:您使用了什么命令来编译和链接您的程序?我不知道CFLAGS和LDFLAGS是什么。我刚刚在VS2012中设置了该项目。查看编译器和链接器的命令行,没有使用任何标志(C或LD)。但是我将bin文件夹添加到PATH环境变量中,不再出现该错误(现在是一个完全不同的错误;-)@obiwanjacobi我以为您使用的是gcc而不是visualstudio。我想如果你的libmonosgen-2.0.dll文件与你的.exe文件位于同一路径,它也应该可以工作。@Gooseman:你能在Mono文档中编辑以修复过时的信息吗?也许可以挽救下一个在这个问题上绊倒的人:)