Как включить проект динамической библиотеки C ++ в процесс сборки моего проекта ядра dotnet?

Я смотрю на .NET Core проект, который вызывает динамическую библиотеку, которую я создаю из C ++. Я в основном скопировал пример, обсуждаемый в https://github.com/dotnet/core/issues/756.

// Program.cs
using System;
using System.Runtime.InteropServices;

namespace dotnet_pinvoke
{
class Program
{
[DllImport("extern_lib/a.out")]
public static extern int MyNativeFunction(int x, int y, int z);

static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.WriteLine(MyNativeFunction(1, 2, 3));
}
}
}// extern_lib/mylib.c
#include <cstdint>

extern "C" std::int32_t MyNativeFunction(int32_t x, int32_t y, int32_t z)
{
return x + y + z;
}

Я строю с g++ -std=c++14 -shared mylib.c а также dotnet build,
Это работает. Я даже приятно удивлен, как быстро это сработало.
Теперь мне интересно, как интегрировать процесс сборки библиотеки C
в dotnet build,

В идеале, dotnet build назвал бы make или же cmake в
обновить динамическую библиотеку, если были изменения.
Если это невозможно, какова лучшая альтернатива?
Создание выпусков из моего кода C и ссылки на них из C # как-нибудь?

Зависимость проекта C ++ для проекта .NET Core похоже, но, похоже, относится только к Windows и VS.

Эта сборка из самого репо дотнет-ядра а также этот файл из того же репо выглядеть хорошей отправной точкой. Это? Может кто-нибудь объяснить, как это работает?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]