Поддержка LLVM в Mono работает при попытке загрузить libmono-llvm.so
из соответствующего $libdir
, например. на OSX /usr/bin/mono
загрузится /Library/Frameworks/Mono.framework/Libraries/libmono-llvm.dylib
. См. Код загрузки LLVM в mono / mini / mini-llvm.h , в частности mono_llvm_load () и try_llvm_load () .
Похоже, если вы назовете свой бэкэнд LLVM mono-llvm
, он будет использоваться при запуске моно как mono --llvm
. Тем не менее, mono_llvm_load()
, по-видимому, требует определенных экспортов из библиотеки mono-llvm
, таких как mono_llvm_init
и mono_llvm_cleanup
, поэтому я уверен, что потребуется некоторая дополнительная работа с вашей серверной частью LLVM, чтобы Mono мог используйте его, и я не уверен, где это выяснить (кроме grep
ping для "LLVM" в источниках Mono ...).
Это также означает, что бэкэнд LLVM нельзя использовать повторно из предварительно встроенного моно; то есть вам может потребоваться создать собственный моно, чтобы использовать бэкэнд LLVM, так как монофонический сборочный файл будет обеспечивать бэкэнд mono-llvm
, который может быть не подключаемым. (Понятия не имею, насколько подключаемым или нет подключаемым является бэкэнд LLVM.)