我正在Mono for OSX上用GTK#中的first steps(或者我的最后一步)。我写了一个.cs文件,然后尝试用mono编译:
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。
编辑: Miguel说我的道路上有一些奇怪的东西。
我已根据Macports说明删除了所有Macport。我从.dmg重新安装了Mono。这是我目前的路径
export PATH=/opt/subversion:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin
但即使只使用/ usr / bin,它仍然无法避免错误。
所有单声道的东西都应该是它应有的位置,包括/Library/Frameworks/Mono.framework/Versions/Current
中的所有内容。 HOWEVER:奇怪
/Library/Frameworks/Mono.framework/Versions/2.4.2.2/lib/gtk-sharp-2.0/
是空的。但是MonoDevelop会运行,但不知道Gtk(我已经包含了它所知道的所有引用)......
答案 0 :(得分:9)
快速而肮脏的解决方案:
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
这是空白的,所以我想可能无法运行它,因为它不在路径中。原来就是这样。
答案 1 :(得分:3)
你有一个混合设置。
/ opt / local / var / macports中的Gtk并非来自Mono的OSX安装程序,您可能是早些时候从macports获得的。 Mono安装程序将其文件放在/Library/Frameworks/Mono.framework /
下有可能,你在路径上还有别的东西,因为在我从Mono网站安装Mono.Framework之后它已经开箱即用(使用上面的命令行示例)。
答案 2 :(得分:2)
使用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,btw的引用。
请注意框架版本为“Current”的路径,这使命令更具有前瞻性。