2009-08-02 12 views
8

Sto prendendo il mio first steps (o forse i miei ultimi passi) in GTK # su Mono per OSX. Scrivo un file con estensione cs e quindi provare a compilare con mono:Domanda per principianti: GTK # (Mono) su OSX

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

questo si traduce in questo messaggio

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

Il che, a quanto pare, mi richiede di sapere quello che sto facendo. So che

di installazione di Mono per MacOS X è dotato con Gtk + e Gtk # modo da poter iniziare costruzione e la gestione cross-platform applicazioni GUI Gtk #, che comprendono OSX."

Quindi non c'è nulla da installare.

mi trovo qui GTK2

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

che è stato definitivamente installato dall'installazione Mono.

La versione di Gmcs è 2.4.2.2.

Modifica: Miguel dice che ho qualcosa di strano sul mio cammino.

Ho rimosso tutti i Macport seguendo le istruzioni Macports. Ho reinstallato Mono dal .dmg. Ecco il mio percorso corrente

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

ma anche se l'uso solo/usr/bin è ancora non evitando l'errore.

TUTTI I materiali mono sono dove dovrebbero essere, compresi tutti gli elementi in /Library/Frameworks/Mono.framework/Versions/Current. TUTTAVIA: stranamente

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

è vuota. Ma MonoDevelop funziona, ma non conosce Gtk (ho incluso tutti i riferimenti di cui è a conoscenza) ...

risposta

9

Soluzione rapida e sporca:

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

Ora i vostri GMCs -pkg: ... comando funzionerà.

Background: ho riscontrato questo problema esatto su un nuovo Mac e una nuova installazione di Mono. Mi ha lasciato graffiare la mia testa per un paio di giorni fino a quando ho preso uno sguardo da vicino il messaggio di errore:

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

Sta dicendo che non poteva eseguire il programma, così ho fatto un

which pkg-config 

che è venuto up blank, quindi ho pensato che probabilmente non poteva eseguirlo perché non era nel percorso. E quello risultò essere quello.

+0

Grazie Yawar. Segnalo come migliore risposta per ora, e nel prossimo mese (è dicembre 2009) darò uno scatto e vedrò se funziona per me. Il problema è che non ho toccato questa roba in pochi mesi (ho usato puro Winforms). Certo sembra giusto. –

+1

Un'altra opzione (meglio?) È semplicemente aggiungere la directory bin mono al tuo percorso. 'export PATH = $ {PATH}:/Library/Frameworks/Mono.framework/Versions/Current/bin' – Cheeso

+0

@Cheeso - certo, dovrebbe funzionare bene. La questione della preferenza, penso. – Yawar

3

Si dispone di una configurazione mista.

Il file Gtk in/opt/local/var/macports non proviene dall'installer di Mono per OSX, probabilmente lo avete ottenuto in precedenza da Macports. Il programma di installazione Mono colloca i suoi file in /Library/Frameworks/Mono.framework/

È probabile che tu abbia qualcos'altro sul tuo percorso, poiché funziona fuori dalla scatola dopo aver installato Mono.Framework dal sito web Mono (con l'esempio della linea di comando che hai sopra).

+0

Grazie Miguel, risponderò se risolvo questo o ho altre domande. (+1 para vos, por supuesto) –

+0

Mi spiace, intendi "percorso" come in echo $ PATH o ... quale ambiente vars dovrei guardare? –

+0

Miguel, ho modificato la domanda di nuovo dopo i tuoi commenti, se hai la possibilità di guardarlo. –

2

Utilizzando MonoDevelop potrebbe rendere le cose più facili, ma ecco come si fa riferimento a GTK # durante la compilazione (da notare che faccia riferimento al montaggio direttamente dal GAC):

GMCs Test.cs -r:/Library/Frameworks/Mono.framework/Versions/corrente/lib/mono/GAC/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll

Di solito è necessario includere anche riferimenti a gdk-sharp e pango-sharp e glib-sharp, btw.

Nota nel percorso che la versione del framework è "Current", che rende il comando un po 'più a prova di futuro.

+0

Grazie per questo, Sandy, e buona fortuna qui su SO. Lo vedrò tra poco, anche se sembra che la mia strategia Mono preferita - in attesa - sia buona perché l'intera faccenda progredisce. –

Problemi correlati