0

Are their any libraries which provide functionality similar to mono but for the c++ language? I know boost exists, but I like mono much more than boost.

I'm looking to do more than what's available in the base library set, like play sound more easily (crossplatform), GUI, load images, time, etc. I guess I am looking for what people might consider an engine or a large library.

Simon MᶜKenzie
  • 8,344
  • 13
  • 50
  • 77
  • 1
    What do you mean from "mono for C++"? A C++ to CIL compiler? – Mehrdad Afshari Apr 10 '09 at 15:32
  • No something like a crossplatform .NET for c++. or an assort collection of classes like boost. –  Apr 10 '09 at 15:34
  • A .NET for C++? What do you mean? As in a standard library like STL or Boost? – Zifre Apr 10 '09 at 15:37
  • 1
    .NET is more than just a class library. If you want something similar to the .NET class library for C++, you should be more specific to avoid misunderstandings. When you say .NET (or Mono), people assume you're talking about the entire platform, with managed code, JIT compiler, MSIL and all. – jalf Apr 10 '09 at 17:13
  • As I understand your question, you want something similar to the .NET *class library* for C++. Correct? :) And no, the best general one I'm aware of is Boost. Of course there are plenty of libraries covering smaller aspects, like sound playback or GUI, but none that offers everything in one package. – jalf Apr 10 '09 at 17:14

7 Answers7

12

Mono is a .NET implementation. Mono is NOT a library. There is NO Mono for C++. At least, not yet.

luiscubal
  • 24,773
  • 9
  • 57
  • 83
11

I think you want a multi-platform framework, such as Qt

Wladimir Palant
  • 56,865
  • 12
  • 98
  • 126
Nemanja Trifunovic
  • 24,346
  • 3
  • 50
  • 88
9

If you're wanting to work with Managed C++ a la .Net, then you would just use Mono. They have a page describing how to go about it. The only catch is that you have to compile on Windows, as there is not yet any flavor of GCC that outputs .Net CLI for C++.

To be honest, though, if you're going to use Mono, you might as well move into C#. It's a much cleaner language, IMO.

tghw
  • 25,208
  • 13
  • 70
  • 96
2

I'm not sure about your precise requirements, but in terms of large multi-purpose packages: Qt has been mentioned by a few folks. wxWidgets (formerly wxWindows) is another option. GTK is multiplatform.

As you use the word "engine" (often a game-related term), you might be interested in SDL, which has been used by numerous games, professional and amateur alike. SFML is an option. ClanLib is another long-lived library I've heard of, though I'll admit to knowing little about it.

xelco52
  • 5,257
  • 4
  • 40
  • 56
2

CLI is only able to host C++ compiled code on all supported platforms as long as the compiled code only contains CIL not native code.

for more detail visit http://www.mono-project.com/CPlusPlus

Yasir Kamal
  • 443
  • 4
  • 10
0

Try the STL collections...Has nothing to do with .NET, but they are a nice collection of collections (lol) and make C++ life easier.

FlySwat
  • 172,459
  • 74
  • 246
  • 311
0

It sounds like what you are really looking for is a C++ framework that offers the kinds of functionality found in the .NET/Mono framework. Qt is a popular choice.

On the topic of C++ interoperability, Mono has recently made some pretty big strides with CXXI.

(From this posting): The short story is that the new CXXI technology allows C#/.NET developers to:

  • Easily consume existing C++ classes from C# or any other .NET language
  • Instantiate C++ objects from C#
  • Invoke C++ methods in C++ classes from C# code
  • Invoke C++ inline methods from C# code (provided your library is compiled with -fkeep-inline-functions or that you provide a surrogate library)
  • Subclass C++ classes from C#
  • Override C++ methods with C# methods
  • Expose instances of C++ classes or mixed C++/C# classes to both C# code and C++ as if they were native code.

CXXI is the result of two summers of work from Google's Summer of Code towards improving the interoperability of Mono with the C++ language.

Justin
  • 8,853
  • 4
  • 42
  • 42