¿Como compilar en Mono con Cairo y C#?

Antes compilaba los programas con la librería cairo en mono de esta manera:

mcs Clip2.cs -pkg:gtk-sharp-2.0 -pkg:mono-cairo

Y ahora no me funciona y ni siquiera me funcionan los programas que antes había compilado… Pero buscando mucho por la red me di cuenta que ahora se compila de esta forma:

gmcs Arc.cs -r:Mono.Cairo -pkg:gtk-sharp-2.0

Y es raro que no se pueda de esta otra:

writkas@writkas-desktop:~/c#/Cairo/Writkas/Listos$ smcs Arc.cs -r:Mono.Cairo -pkg:gtk-sharp-2.0
error CS0006: cannot find metadata file `Mono.Cairo'
Compilation failed: 1 error(s), 0 warnings

:S

Y por si todavía no funciona, yo instale algunos paquetes que decían por ahí:

  • Instalar libpixman-0.1.2 y libpixman-devel-0.1.2 (necesarios para Cairo)
  • Instalar cairo-0.2.0 y cairo-devel-0.2.0 (necesarios para libgdiplus)

Bueno eso es todo, espero que a alguien le aya servido 🙂

__________

Actualizado: solo había que instalar la librería libmono-cairo1.0-cil, no vienen predeterminados con mono 2.x. Ahora funcionan los ejecutables

¬¬

  1. Instalar libpixman-0.1.2 y libpixman-devel-0.1.2 (necesarios para Cairo)
  2. Instalar cairo-0.2.0 y cairo-devel-0.2.0 (necesarios para libgdiplus)
  3. Instalar libpixman-0.1.2 y libpixman-devel-0.1.2 (necesarios para Cairo)
  4. Instalar cairo-0.2.0 y cairo-devel-0.2.0 (necesarios para libgdiplus)

4 thoughts on “¿Como compilar en Mono con Cairo y C#?

  1. Saludos

    Está muy bueno tu blog y las publicaciones que hay respecto a C#, uno de mis lenguajes favoritos.

    Yo soy medio novato en la programación usando Cairo y en general programación gráfica. Tengo un proyecto personal en el que deseo utilizar un bloque de dibujo (canvas) en el cual pueda agregar uno ó varios elementos gráficos y poderlos seleccionar y mover con el mouse, vincularlos a una clase, etc.

    Por no ir más allá, el ejemplo que me ha servido está basado en QT
    http://qt-project.org/doc/qt-4.8/graphicsview-diagramscene.html

    y la verdad me gustó mucho, me hice mi propia versión en C# usando Qyoto y fué muy fácil de implementar, lo malo es que Qyoto es bastante inestable, y por lo que he visto es un proyecto prácticamente abandonado, así que tengo dos opciones…, Insistir con Cairo y C# …, ó hacer definitivamente ese proyecto en C++ (algo que no me agradaría mucho cuando se crezca el proyecto).

    Te mandé una solicitud en facebook, igual si tienes sugerencias ó una solución a este problema, me puedes contactar :

    acroper[-at-]gmail[-dot-]com
    Jorge Guerrero

    matias: modifique tu e-mail para que no te lo llenen de spam

  2. Hola Jorge,

    A veces no queda otra que pensar en la alternativa más optima para los programas, eso es aparte de el lenguaje. C Sharp es un muy buen lenguaje de programación, pero también el compilador de C o C++ es uno de los mejores compiladores que existen o el mejor. No se como estará el compilador de mono, creo que ahora lo reescribieron desde 0.

    También existe un lenguaje de programación que se llama Vala, que es un lenguaje muy parecido a C Sharp. Pero Vala transforma el código a C y luego lo compila con el compilador de C. Ahora no se si habrán bindings para QT, pero es un proyecto de Gnome. Ahora que uso KDE encuentro que QT es una excelente librería para hacer interfaces gráficas.

    Pero no creo que sea mala idea usar GTK con Cairo, cairo es un buen motor gráfico para dibujos vectoriales. Lo que si no se como hacer drag and drop con cairo pero creo que si se puede.

    Y mono no está tan abandonado como la gente cree, tiene mucha actividad según lo que he visto en GitHub (ahí alojan el proyecto) https://github.com/mono/mono/network

    Saludos y gracias por lo que dices.

  3. Muchas gracias por tu respuesta. Aclarando un poco, el proyecto mono tiene mucho auge, me refería al proyecto Qyoto (bindings de QT para mono), el cual si está prácticamente abandonado.
    Para aportar un poco al blog (a quien pueda interesarle), finalmente encontré una biblioteca que satisface mis necesidades (pero no supera la experiencia que noté con QT), está abandonada pero las fuentes están disponibles para crear elementos básicos y ya lo probé y funciona.
    La biblioteca se llama MonoHotDraw, la encontré inicialmente en este proyecto: http://www.monouml.org/doku.php?id=monohotdraw-framework

    y la fuente está disponible en https://github.com/mono/monohotdraw

    Como dije, está abandonado el proyecto, pero la biblioteca está basada en cairo y gdk para las operaciones gráficas (me preocupa un poco un rumor de que gdk desaparecerá). Si quiere, puede echarle un vistazo, y me gusta mucho el ejemplo “DEMO” …, hay otros ejemplos complejos – algunos no compilan por obsolescencia de código – pero el ejemplo DEMO es sumamente simple y a la vez muestra el potencial de la biblioteca, lo que me gustó.

    Voy a iniciar un proyecto personal para hacer una herramienta de diagramas que utiliza paquetes relacionados a LaTeX para la generación del acabado final. Ya tengo lo necesario para iniciar, sólo me falta tiempo – del que dispondré en un par de meses – y bueno, C# siempre ha sido mi primera elección de lenguaje debido a la velocidad en que puedo desarrollar mis ideas (no me ocurre lo mismo en otros lenguajes y prefería no complicarme, por eso insistí con Qyoto). Ok cuando tenga algo del proyecto le haré el anuncio.

    Hasta luego y gracias

    – Me interesa lo que dices de Vala, me gustaría saber si la transformación a código nativo funciona sin problemas para las bibliotecas Gtk, Gdk y Cairo que son las que uso…, de ser así, maravilloso …, y si pudiera seguir utilizando MonoDevelop mejor aún.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s