




перейдите здесь и посмотрите в разделе «Отсутствующие языки». Но то, что вы не можете скомпилировать, не означает, что вы не можете бег. Вы можете скомпилировать свой код C++ с помощью framework sdk и попробовать запустить его с помощью mono. В любом случае стоит попробовать.
Mono может запускать «чистые» сборки, созданные C++ / CLI, т.е. те, которые не содержат собственный код Любые. Различные параметры / clr, поддерживаемые компилятором C++, задокументированы на MSDN.
В настоящее время нет поддержки для компиляции C++ / CLI. Была проведена некоторая работа по изменению GCC для выдачи IL, но она не завершена (и не выглядит активной). См. Этот статья.
Я не верю, что Microsoft документирует формат для включения собственного кода в сборку, поэтому поддерживать это сложно.
У нас нет компилятора для C++ / CLI, это было бы очень большим мероприятием для очень небольшой пользовательской базы. Учтите также, что спецификация C++ / CLI изначально ошибочна и непереносима, поэтому возможность ее компиляции в общем случае не очень поможет.
Вы можете скомпилировать с помощью компилятора MS .NET и запустить моно со следующими ограничениями:
запускать с моно в любой системе, если приложение C++ / CLI полностью управляется (но тогда зачем использовать такой уродливый язык, а не C#?)
в других случаях запускать с моно в окнах (приложения C++ / CLI, как правило, непереносимы и включают собственный код, поэтому они могут работать только в Windows и неинтересны для основной цели моно, которая заключается в запуске управляемых программ в Linux)
Обратите внимание, что сама MS в конечном итоге откажется от C++ / CLI, поэтому не вкладывайте в него слишком много и переходите на C#.
Управляемый C++ уже не поддерживается и снят с производства, на это у них не ушло много времени. А теперь посчитайте новости, связанные с C++ / CLI за последний год или два, сообщения в блогах, объявления. Соедините точки.
Подсчитайте новости, сообщения в блогах, объявления, связанные с C++ (исходящие от Microsoft), и сравните их с C#, ASP.NET и т. д. Означает ли это, что MS откажется от C++?
У старого и устоявшегося языка меньше потребностей в разработке, и все же C++ от MS получил гораздо больше внимания, чем C++ / CLI. Но это ваши деньги, поэтому, если вы хотите инвестировать в C++ / CLI, решать вам, я просто даю свой совет: людям следует держаться подальше от C++ / CLI, и вдвойне, если они ценят переносимость.
если они ценят переносимость, им также следует держаться подальше от C#. Я думаю, что MS навсегда сохранит C++ / CLI, думаю, что они поддерживают языки Iron * и у них еще меньше пользователей.
Управляемый C++ был исключен из-за серьезных проблем с удобством использования. C++ / CLI как язык взаимодействия никуда не исчезнет, но он уже является второсортным гражданином для GUI - WPF не поддерживается и никогда не будет поддерживаться.
«Управляемый C++ уже не поддерживается и снят с производства, им не потребовалось много времени, чтобы это сделать»: вот почему я ненавижу Microsoft страстью, граничащей с патологией. После того, как я потратил около года своей жизни на изучение этого неполноценного языка, не говоря уже о бесчисленных долларах, которые я потратил на покупку книг по управляемому C++ по завышенным ценам в прессе Microsoft, язык был бесцеремонно и незаметно отброшен. VB6 (хотя он и был бессмысленным языком, имел огромное количество поклонников) - точно так же был бессердечно убит MS - несмотря на громкие протесты со стороны клиентской базы. Я лично приветствую наших новых повелителей Google и др.
@StickittoTHEMAN Я не фанат M $, но убийство VB6, несомненно, было одним из лучших поступков M $ - эта сука была уродливой. Что касается C++ CLI, у него есть ниша для взаимодействия, но это тоже уродливо - вне взаимодействия вам либо нужно и использовать C++, либо наслаждаться C#. C++ CLI никогда не был чем-то полезным для разработчиков или M $ - вам следовало потратить свои книжные деньги в другом месте.
Довольно забавно, что C++ мертв, комментарии продолжаются вплоть до конца 2011 года. C++ так хорошо работает в Microsoft (WinRT), что некоторые люди теперь обеспокоены тем, что проблемы возникают именно с C#. Я так не думаю. Во всяком случае, теперь вы можете разрабатывать приложения C++ с помощью XAML, поэтому некоторые из комментаторов выше должны быть удивлены.
@Justin Я просто хотел бы отметить следующее. Вариант C++, используемый для WinRT, - это C++ / CX (аналогичный случай с CLR и C++ / CLI), который включает ряд функций, которых еще нет (частичные классы, асинхронные продолжения и т. д.) Или никогда * не будут (среда выполнения классы), часть стандарта C++ 11. * в обозримом будущем.
Я думаю, что настоящий невысказанный вопрос заключается в том, что Mono должно заменить этот пробел: как мне написать свои привязки к библиотекам C++ для использования в проектах C#? Одно дело просто сказать: «C++ / CLI - отстой, поэтому мы не будем этого делать», не задумываясь о том, что еще использовать.
C++ / CLR все еще работает с VS 2017
Нет, C++ / CLI - это не поддерживается под Mono и, вероятно, никогда не будет, хотя генерация чистого IL с использованием компиляторов MS позволит полностью управляемому коду работать под Mono.
В качестве языка взаимодействия существует C++ / CLI, позволяющий вызывать неуправляемый код. Другой альтернативой является использование P / Invoke, который является хорошо документированы, хотя и с проблемами.
О каких проблемах вы думаете?
В Mono 2.4 вы можете запускать приложения C++ / CLI, которые были скомпилированы, например, под Visual Studio 2008 с переключателем / clr: safe.
Mono недавно добился значительных успехов в обеспечении взаимодействия C++ в CXXI.
Из этой публикации, вкратце, новая технология CXXI позволяет разработчикам C# /. NET:
CXXI - это результат двух летних работ Google Summer of Code, направленных на улучшение взаимодействия Mono с языком C++.
Каков текущий статус этого проекта? Находится ли он в рабочем состоянии? В репо не было никакой активности около года, и дискуссионная группа довольно пуста.
Было бы интересно, если есть какие-то планы по поддержке этого в будущем.
Похоже, он мертв.
Это очень старый вопрос, на который спустя несколько лет появятся очень интересные ответы. На данный момент tritao / CppSharp является наиболее активно разрабатываемым форком моно / cxxi, который был перемещен обратно в репозиторий мононуклеоз в 2013 году и активно развивается с тех пор, как текущее дерево можно найти на моно / CppSharp
Их файл readme - здесь, а функции «генератора»:
Он также поставляется с множеством классных вещей AST и парсером.
«Сама MS со временем откажется от C++ / CLI». Не могли бы вы объяснить, почему вы так думаете? Мне это кажется маловероятным.