Mono, кажется, может быть собран с помощью mingw, хотя большинство ссылок, которые я нашел, были кросс-компилированы из Linux, например http://www.mono -project.com / Cross-compiling_Mono_for_Windows
Я бы сказал, что вашим первым приоритетом является поиск DLL-библиотеки libmono,
- не использует Cygwin (поверь мне)
- , как известно, работает, также вне mingw (избегайте возможного искажения, специфичного для mingw в C ++, если используется C ++)
- Предпочтительно поставляется с читаемым заголовком.
Если вы найдете или создадите его как DLL (чтобы удовлетворить правильное замечание mghie), напишите заголовок (как предлагает Стийн), он может работать.
Хотя это не будет тривиально, виртуальные машины - не совсем тривиальные звери, и они ожидают проблем в обычных многоязычных проблемных областях: инициализация библиотеки (порядок), маска исключений FPU и обработка исключений в целом. Частично именно поэтому я и сказал «знать, как работать вне mingw», изучение того, как оно взаимодействует с другими компиляторами, может дать подсказки, как правильно решать эту проблему.
Обратите внимание, что у моно-учебника есть инициализатор моно-библиотеки, но это не значит, что все библиотеки, которые использует моно, правильно инициализированы. Специально для libc mingw может потребоваться инициализация, так как они обычно инициализируются через ctors. Мой (очень начальный) код клея mingw здесь:
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/ide/fpmingw.pas?view=markup
С другой стороны, в DLL она может быть инициализирована с помощью подпрограммы инициализации DLL.
Я сам смог собрать GDB как библиотеку и использовать ее (хотя статически в FPC у меня не было мотивации для создания DLL, так как это было опцией)
Обратите внимание, что если вам действительно нужно сделать это самостоятельно, это НЕ простой способ.