Ищете набор многофункциональных кроссплатформенных библиотек для c ++

Есть ли у них какие-либо библиотеки, которые предоставляют функциональность, аналогичную моно, но для языка С ++? Я знаю, что усиление существует, но мне больше нравится моно, чем усиление.

Я хочу сделать больше, чем то, что доступно в базовом наборе библиотек, например, более легко воспроизводить звук (кроссплатформенный), графический интерфейс, загружать изображения, время и т. Д. Думаю, я ищу то, что люди могут считать движком или большой библиотекой .


person Community    schedule 10.04.2009    source источник
comment
Что вы имеете в виду под моно для C ++? Компилятор C ++ в CIL?   -  person mmx    schedule 10.04.2009
comment
Нет ничего похожего на кроссплатформенный .NET для c ++. или ассортиментный набор классов, таких как boost.   -  person    schedule 10.04.2009
comment
.NET для C ++? Что ты имеешь в виду? Как в стандартной библиотеке типа STL или Boost?   -  person Zifre    schedule 10.04.2009
comment
.NET - это больше, чем просто библиотека классов. Если вам нужно что-то похожее на библиотеку классов .NET для C ++, вы должны быть более конкретными, чтобы избежать недоразумений. Когда вы говорите .NET (или Mono), люди предполагают, что вы говорите обо всей платформе с управляемым кодом, JIT-компилятором, MSIL и всем остальным.   -  person jalf    schedule 10.04.2009
comment
Насколько я понимаю ваш вопрос, вам нужно что-то похожее на .NET библиотеку классов для C ++. Правильный? :) И нет, лучший общий из известных мне - Boost. Конечно, существует множество библиотек, охватывающих более мелкие аспекты, такие как воспроизведение звука или графический интерфейс, но ни одна из них не предлагает все в одном пакете.   -  person jalf    schedule 10.04.2009


Ответы (7)


Mono - это реализация .NET. Mono - это НЕ библиотека. Для C ++ НЕТ Mono. По крайней мере, пока нет.

person luiscubal    schedule 10.04.2009

Я думаю, вам нужен многоплатформенный фреймворк, такой как Qt

person Nemanja Trifunovic    schedule 10.04.2009

Если вы хотите работать с Managed C ++ а-ля .Net, вам следует просто использовать Mono. У них есть страница с описанием того, как это сделать. Единственная загвоздка в том, что вам нужно компилировать в Windows, так как еще нет какой-либо разновидности GCC, выводящей .Net CLI для C ++.

Однако, честно говоря, если вы собираетесь использовать Mono, вы можете также перейти на C #. ИМО, это гораздо более чистый язык.

person tghw    schedule 10.04.2009

CLI может размещать только скомпилированный код C ++ на всех поддерживаемых платформах, если скомпилированный код содержит только CIL, а не собственный код.

для получения более подробной информации посетите http://www.mono-project.com/CPlusPlus.

person Yasir Kamal    schedule 16.11.2011

Я не уверен в ваших точных требованиях, но с точки зрения больших многоцелевых пакетов: Qt упоминался несколькими людьми. Другой вариант - wxWidgets (ранее wxWindows). GTK является мультиплатформенным.

Когда вы используете слово «движок» (часто термин, связанный с игрой), вас может заинтересовать SDL, который был используется во многих играх, как профессиональных, так и любительских. SFML - это вариант. ClanLib - еще одна долгоживущая библиотека, о которой я слышал, хотя признаюсь, что мало о ней знаю. .

person Crypto Waffle    schedule 12.06.2012

Попробуйте коллекции STL ... Не имеет ничего общего с .NET, но они представляют собой прекрасную коллекцию коллекций (смеется) и облегчают жизнь C ++.

person FlySwat    schedule 10.04.2009

Похоже, что вы действительно ищете фреймворк C ++, который предлагает те же функции, что и в .NET / Mono framework. Qt - популярный выбор.

Что касается совместимости с C ++, Mono недавно добилась значительных успехов с CXXI ​​.

(Из этой публикации): вкратце, новая технология CXXI позволяет разработчикам C # /. NET:

  • Легко использовать существующие классы C ++ из C # или любого другого языка .NET.
  • Создание экземпляров объектов C ++ из C #
  • Вызов методов C ++ в классах C ++ из кода C #
  • Вызов встроенных методов C ++ из кода C # (при условии, что ваша библиотека скомпилирована с помощью -fkeep-inline-functions или вы предоставляете суррогатную библиотеку)
  • Подкласс C ++ классов из C #
  • Переопределить методы C ++ методами C #
  • Предоставьте экземпляры классов C ++ или смешанных классов C ++ / C # как для кода C #, так и для C ++, как если бы они были машинным кодом.

CXXI - это результат двух летних работ от Google Summer of Code, направленных на улучшение взаимодействия Mono с языком C ++.

person Justin    schedule 28.01.2012