2009-08-02 15 views
8

Estoy tomando mi first steps (o quizás mis últimos pasos) en GTK # en Mono para OSX. Escribo un archivo .cs y luego tratar de compilar con mono:Pregunta de novato: GTK # (Mono) en OSX

gmcs -pkg:gtk-sharp-2.0 one.cs 

esto da lugar a este mensaje

error CS8027: Couldn't run pkg-config: ApplicationName='pkg-config', CommandLine='--libs gtk-sharp-2.0', CurrentDirectory='' 

Lo cual, al parecer, me requieren saber lo que estoy haciendo. Yo sé que

Instalador de Mono para MacOS X viene con GTK + y GTK # para que pueda empezar construcción y explotación multiplataforma aplicaciones de interfaz gráfica de usuario GTK #, que incluyen OSX."

Así que no hay nada que instalar.

que encuentro aquí GTK2

/opt/local/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2/ 

que definitivamente fue instalado por la instalación de Mono.

La versión de Gmcs es 2.4.2.2.

Editar: Miguel dice que tengo algo extraño en mi camino.

He eliminado todos los Macports siguiendo las instrucciones de Macports. He reinstalado Mono de .dmg. Aquí está mi ruta actual

export PATH=/opt/subversion:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin 

pero incluso si se usa solo/usr/bin todavía no se está evitando el error.

TODO Lo mono está donde se supone que debe estar, incluidas todas las cosas en /Library/Frameworks/Mono.framework/Versions/Current. Sin embargo: extrañamente

/Library/Frameworks/Mono.framework/Versions/2.4.2.2/lib/gtk-sharp-2.0/ 

está vacía. Pero MonoDevelop se ejecuta, pero no sabe nada de Gtk (he incluido todas las referencias que conoce) ...

Respuesta

9

solución rápida y sucia:

cd /usr/local/bin 
sudo ln -s /Library/Frameworks/Mono.framework/Commands/pkg-config ./pkg-config 

Ahora sus GMC pkg: ... comando funcionará.

Antecedentes: Me tocó este problema exacto en una nueva Mac y una nueva instalación de Mono. Me dejó rascándome la cabeza durante unos días hasta que tomó un vistazo de cerca al mensaje de error:

error CS8027: Couldn't run pkg-config: ApplicationName='pkg-config', CommandLine='--libs gtk-sharp-2.0', CurrentDirectory='' 

Está diciendo que no podía ejecutar el programa, así que hice un

which pkg-config 

que vino en blanco, así que pensé que probablemente no podría ejecutarlo porque no estaba en el camino. Y eso resultó ser.

+0

Gracias Yawar. Voy a marcar esto como la mejor respuesta por ahora, y en el próximo mes (es diciembre de 2009) voy a dar una oportunidad y ver si funciona para mí. El problema es que no he tocado esto en unos meses (he usado formas de Win puras). Claro se ve bien. –

+1

Otra (¿mejor?) Opción es simplemente agregar el directorio mono bin a su ruta. 'export PATH = $ {PATH}:/Library/Frameworks/Mono.framework/Versions/Current/bin' – Cheeso

+0

@ Chereos - seguro, eso debería funcionar bien. La materia de preferencia, creo. – Yawar

3

Tiene una configuración mixta.

El Gtk en/opt/local/var/macports no vino del instalador de Mono para OSX, probablemente lo haya obtenido anteriormente de macports. El instalador Mono coloca sus archivos en /Library/Frameworks/Mono.framework/

Lo más probable es que tenga algo más en su camino, ya que funciona de la caja después de que instalé el Mono.Framework del sitio web de Mono (con el ejemplo de línea de comando que tienes arriba).

+0

Gracias Miguel, le informaré si resuelvo esto o tengo otras preguntas. (+1 para vos, por supuesto) –

+0

Disculpe, ¿quiere decir "ruta" como en echo $ PATH o ... ¿qué entorno vars debería estar mirando? –

+0

Miguel, he editado la pregunta nuevamente después de sus comentarios, si tiene la oportunidad de verla. –

2

Usando MonoDevelop podría facilitar las cosas, pero aquí es cómo se hace referencia a GTK # durante la compilación (nótese que se hace referencia al ensamblado directamente desde el GAC):

GMC test.cs -r:/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll

Por lo general, también deberá incluir referencias a gdk-sharp y pango-sharp y glib-sharp, por cierto.

Tenga en cuenta que la versión del marco es "Actual", lo que hace que el comando sea un poco más a prueba de futuro.

+0

Gracias por eso, Sandy, y buena suerte aquí en SO. Lo veré en breve, aunque parece que mi estrategia Mono favorita, esperar, es buena ya que todo avanza. –

Cuestiones relacionadas