Вопрос новичка: GTK # (Mono) в OSX - PullRequest
8 голосов
/ 03 августа 2009

Я делаю свои первые шаги (или, возможно, мои последние шаги) в GTK # на Mono для OSX. Я пишу файл .cs, а затем пытаюсь скомпилировать с моно:

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

это приводит к этому сообщению

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

Что, очевидно, потребовало бы, чтобы я знал, что я делаю. Я знаю, что

Установщик Mono для MacOS X поставляется с помощью Gtk + и Gtk #, чтобы вы могли начать сборка и запуск кроссплатформенности GUI Gtk # приложения, которые включают OSX. "

Так что устанавливать нечего.

Я нахожу GTK2 здесь

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

, который определенно был установлен при установке Mono.

Gmcs версия 2.4.2.2.

Редактировать: Мигель говорит, что у меня на пути что-то странное.

Я удалил все Macports, следуя инструкциям Macports. Я переустановил Mono из .dmg. Вот мой текущий путь

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

, но даже если использовать просто / usr / bin, ошибка все равно не исчезнет.

ВСЕ моно - то, где они должны быть, включая все в /Library/Frameworks/Mono.framework/Versions/Current. ОДНАКО: странно

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

пусто. Но MonoDevelop работает, но не знает о Gtk (я включил все ссылки, о которых он знает) ...

Ответы [ 3 ]

9 голосов
/ 19 декабря 2009

Быстрое и грязное решение:

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

Теперь ваша команда gmcs -pkg: ... будет работать.

Справочная информация. Я столкнулся с этой проблемой на новом Mac и новой версии Mono. Оставил меня почесать голову на несколько дней, пока я внимательно не посмотрел на сообщение об ошибке:

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

Он говорит, что не может запустить программу, поэтому я сделал

which pkg-config

Это оказалось пустым, так что я подумал, что, вероятно, он не сможет запустить его, потому что его не было на пути. И это оказалось.

3 голосов
/ 03 августа 2009

У вас смешанная настройка.

Gtk в / opt / local / var / macports не пришел из установщика Mono для OSX, вы, вероятно, получили его ранее из macports. Установщик Mono помещает свои файлы в /Library/Frameworks/Mono.framework/

Скорее всего, у вас есть что-то еще на вашем пути, так как он работает из коробки после того, как я установил Mono.Framework с веб-сайта Mono (с примером командной строки, который вы имеете выше).

2 голосов
/ 04 сентября 2009

Использование MonoDevelop может упростить ситуацию, но вот как он ссылается на gtk # во время компиляции (обратите внимание, что он ссылается на сборку прямо из GAC):

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

Обычно вам также необходимо включить ссылки на gdk-sharp и pango-sharp и glib-sharp, кстати.

Заметьте в пути, что версия фреймворка - "Текущая", что делает команду чуть более ориентированной на будущее.

...