Я хочу использовать Mpir.NET с F # (4.5) в Ubuntu 18.04, используя dotnet в командной строке. Не успешный. Если есть более простой способ использования Mpir.NET в F # linux, пожалуйста, сообщите.
Следуйте инструкциям dotnet на https://docs.microsoft.com/en-us/dotnet/fsharp/get-started/get-started-command-line. Пример проекта с использованием пакета Newtonsoft.Json работал нормально, когда я строил проектчтобы проверить Mpir.NET, я получаю сообщение об ошибке, как описано ниже.
dotnet new sln -o MpirProj
dotnet new console -lang F# -o src/App
заменил src / App / Program.fs на программу из документации Mpir.NET:
open Mpir.NET
let a = 756749075976907490175905790287846502134Z
let b = 529134916478965674697197076070175107505Z
let c = a*b
printfn "%O" c
dotnet add src/App/App.fsproj package Mpir.NET
Я получаю следующее сообщение с информацией / предупреждением:
warn: пакет 'Mpir.NET 0.4.0' был восстановлен с использованием '.NETFramework, Version = v4.6.1'целевой платформы проекта .NETCoreApp, версия = v2.1. Этот пакет может быть не полностью совместим с вашим проектом. информация: Пакет 'Mpir.NET' совместим со всеми указанными фреймворками в проекте 'src / App / App.fsproj'. информация: PackageReference для пакета 'Mpir.NET' версии '0.4.0' добавлен в файл '/home/doug/f#favs/MpirProj/src/App/App.fsproj'.
dotnet sln add src/App/App.fsproj
Полученный файл App.fsproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Mpir.NET" Version="0.4.0" />
</ItemGroup>
</Project>
делает сборку
dotnet build
сообщений
/ home / doug / f # favs /MpirProj / src / App / App.fsproj: предупреждение NU1701: пакет «Mpir.NET 0.4.0» был восстановлен с использованием «.NETFramework, версия = v4.6.1» вместо целевой структуры проекта ».NETCoreApp, версия = v2.1». Этот пакет может быть не полностью совместим с вашим проектом. Приложение -> /home/doug/f#favs/MpirProj/src/App/bin/Debug/netcoreapp2.1/App.dll
Сборка выполнена успешно.
Когда я запускаюсм. сообщения об ошибках ниже
~/f#favs/MpirProj/src/App$ dotnet run
сообщения
/ home / doug / f # favs / MpirProj / src / App / App.fsproj: предупреждение NU1701: Package 'Mpir. NET 0.4.0 'была восстановлена с использованием .NETFramework, Version = v4.6.1' вместо целевой платформы проекта '.NETCoreApp, Version = v2.1'. Этот пакет может быть не полностью совместим с вашим проектом. /home/doug/f#favs/MpirProj/src/App/App.fsproj: предупреждение NU1701: пакет «Mpir.NET 0.4.0» был восстановлен с использованием «.NETFramework, версия = v4.6.1» вместо целевой структуры проекта».NETCoreApp, Version = v2.1. Этот пакет может быть не полностью совместим с вашим проектом.
Необработанное исключение: System.TypeInitializationException: инициализатор типа для «Mpir.NET.mpir» вызвал исключение. ---> System.Exception: MPIR: невозможно определить путь к xmpir.so в Mpir.NET.mpir.LocateLibrary (имя строки) в Mpir.NET.mpir.GetXMPIRLibraryPath () в Mpir.NET.mpir.initialize_hxmpir() в Mpir.NET.mpir..cctor () --- Конец внутренней трассировки стека исключений --- в Mpir.NET.mpir.mpz_init_set_str (String str, UInt32 _base) в Mpir.NET.NumericLiteralZ.FromString (Strings) at. $ Program.main @ () в /home/doug/f#favs/MpirProj/src/App/Program.fs:line 3