2016-12-27 7 views
1

У меня есть проект C#, который использует другой проект C++ (.NET C++) как dll. У меня есть исходный код для всех этих. Я хочу запустить программу в Linux. Есть ли способ сделать это (для запуска .NET-кода в Linux) или мне нужно вручную перевести программу на C или Java, чтобы ее можно было запустить в Linux?Запуск .NET-программы в linux

Благодаря

P.S Я нашел следующую статью (https://www.cyberciti.biz/faq/howto-compile-and-run-c-cplusplus-code-in-linux/), который просто говорит, что я могу компилировать приложения C++ на Linux. Поэтому всем, кто говорит, что C++ не может быть запущен в Linux, я хотел бы получить разъяснение, пожалуйста. (Потому что, как я уже сказал, у меня есть исходный код, так что я могу просто скомпилировать программу для работы в Linux?)

+1

Возможный дубликат [Как запустить приложение .net в среде Linux?] (Http://stackoverflow.com/questions/887193/how-to-run-net-application-on-linux-environment) – jww

ответ

0

Если часть «.NET C++» (я полагаю, вы на самом деле означаете C++/CLI, поскольку Managed Расширения C++ для .NET заброшены более десяти лет назад) скомпилированы с /clr:pure, там будет некоторый портирование.

Чистые MSIL сборки, такие, как создаваемые с помощью # компилятора C, можно выполнить непосредственно на Linux с помощью Mono.

Существует новая среда .NET для Linux непосредственно из Microsoft, .NET Core, но она ориентирована на веб-службы. Если у вас консольное приложение, .NET Core может быть достаточно, но поскольку в нем нет каких-либо графических интерфейсов, скорее всего, вам все равно придется использовать Mono.

+0

Так что я просто устанавливаю .NET core (или, что то же самое, Mono) на свой Linux-компьютер, и могу просто запустить приложение .NET? (это консольное приложение, поэтому нет графического интерфейса). – scifie

+0

@scifie: для многих приложений .NET да. Для вас, в частности, это будет зависеть от того, используете ли вы какие-либо библиотеки, которые не входят в версию библиотеки базового класса Mono. Чистые библиотеки MSIL можно копировать так же, как и приложение, но если у них есть какие-либо вызовы p/invoke, требуется портирование. Части C++/CLI требуют портирования. –

+0

Также, как я знаю, какой тип C++ у меня есть? И, как я уже сказал, у меня есть исходный код, поэтому я могу скомпилировать его так, как вы хотите. Я просто хочу, чтобы он мог работать как можно гладко на Linux – scifie

Смежные вопросы