Компиляция кода F # на Mono 2.8 - PullRequest
       33

Компиляция кода F # на Mono 2.8

3 голосов
/ 21 октября 2010

Я пытался скомпилировать код F # с Mono 2.8 в OpenSuSe 11.3. И я продолжаю сталкиваться с неприятностями, в настоящее время я получаю сообщение об ошибке:

parameter error FS0219: The referenced or default base CLI library 'mscorlib' is 
binary-incompatible with the referenced F# core library '/home/fredrik/Documents/
FSharp-2.0.0.0/FSharp-2.0.0.0/bin/FSharp.Core.dll'. Consider recompiling the 
library or making an explicit reference to a version of this library that matches 
the CLI version you are using.

Использование этих опций для компилятора fsharp:

mono fsc.exe -o:FSKit.dll -g --debug:full --noframework --define:DEBUG 
--define:TRACE --optimize- --tailcalls- --platform:x86 -r:"FSharp.Core.dll" 
-r:"/usr/lib/mono/4.0/mscorlib.dll" -r:"/usr/lib/mono/4.0/System.Core.dll" 
-r:"/usr/lib/mono/4.0/System.dll" --target:library --warn:3 --warnaserror:76 
--vserrors --LCID:1033 --utf8output --fullpaths --flaterrors Src/Version.fs 
Src/Bit.fs Src/Reflection.fs Src/Perf.fs Src/Stream.fs Src/AssemblyInfo.fs

После установки FSharp из файла fsharp.zip, найденного здесь и работающего ./install-mono.sh: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=f8c623ae-aef6-4a06-a185-05f59be47d67&displaylang=en

Нужно ли мне скомпилировать FSharp.Core.dll с моно?

1 Ответ

3 голосов
/ 21 октября 2010

Я думаю, что CTP-версия F # доступна только для среды выполнения на основе .NET 2.0 (то есть с .NET 2.0 до .NET 3.5), поэтому для .NET 4.0 нет отдельной установки. Поскольку формат ассемблера немного отличается, вам, вероятно, потребуется использовать библиотеки Mono версии 2.0.

Я думаю, что ссылка на библиотеки из /usr/lib/mono/2.0 должна решить проблему.

И, кстати, есть проект по созданию пакетов для Linux и Mac для F #. Использование ZIP-файла и сценария установки определенно работает, но установка пакета может быть проще:

...