2015-11-08 109 views
1

我試圖讓Mono和Gtk#在Windows上工作。Mono Gtk#無法編譯新手教程

當我嘗試運行MCS hello.cs中-r: 「C:\ Program Files文件(x86)的\單聲道\ LIB \ GTK鋒利2.0 \ GTK的sharp.dll」

我得到以下錯誤:

hello.cs中(11,9):錯誤CS0012:類型Atk.Implementor' is defined in an assemb ly that is not referenced. Consider adding a reference to assembly ATK-尖銳,V版爲= 2.12.0.0文化=中性公鑰= 35e10195dab3c99f」 C:\程序文件(x86)\ Mono \ lib \ gtk-sharp-2.0 \ gtk-sharp.dll(與以前的錯誤相關的符號位置)hello.cs(11,9):錯誤CS0012:類型GLib.IWrapper' is defined in an assembly that is not referenced. Consider adding a reference to assembly glib-sharp,Ve rsion = 2.12。 0.0,Culture = neutral,PublicKeyToken = 35e10195dab3c99f'C:\ Program Files(x86)\ Mono \ lib \ gtk-sharp-2.0 \ gtk-sharp.dll(位置o ˚F與先前錯誤的符號BOL)編譯失敗:2個錯誤,0警告

這是我hello.cs中:

using Gtk; 
using System; 

class Hello 
{ 
    static void Main() 
    { 
     Application.Init(); 

     Window window = new Window ("Hello Mono World"); 
     window.Show(); 

     Application.Run(); 
    } 
} 

當我嘗試運行:(如圖所示教程)我得到以下錯誤:

在pkg-config搜索路徑中找不到包gtk-sharp.2.0。也許你應該將包含`gtk-sharp.2.0.pc'的目錄添加到PKG_CONFIG_PATH環境變量中。無包'gtk-sharp.2.0'找到錯誤CS8027:運行pkg-config時出錯。檢查上面的輸出。

我沒有在網上找到任何東西,有人可以幫忙嗎?

謝謝!

回答

0

好吧,問題似乎是mcs命令行選項-pkg:gtk-sharp-2.0在Windows下無法正常工作,在Ubuntu下它工作正常。

在pkg-config路徑中有需要的文件gtk-sharp-2.0.pc,如果我運行pkg-configure,它也會找到gtk-sharp軟件包。

如果有人知道如何解決這個問題在Windows中,這將是很好的。

對於所有誰遇到同樣的問題,因爲我,由-r選項添加所有所需的dll到MCS:

mcs hello.cs -r:"C:\Program Files (x86)\Mono\lib\gtk-sharp-2.0 
\gtk-sharp.dll" -r:"C:\Program Files (x86)\Mono\lib\gtk-sharp-2.0\atk-sharp.dll" 
-r:"C:\Program Files (x86)\Mono\lib\gtk-sharp-2.0\glib-sharp.dll" 
0

也對這個困難。 似乎pkg-config知道這個包。 如果我運行"C:\Program Files (x86)\Mono\bin\pkg-config.exe" --list-all 它返回一個列表,在那裏我可以看到gtk-sharp-2.0。

我發現的一件事是,pkg-config的windows版本不只是返回0或1,如果你問是否找到包。

所以運行

"C:\Program Files (x86)\Mono\bin\pkg-config.exe" --exists gtk-sharp-2.0 

回報指出,但是當你看着%ERRORLEVEL%,這是正確的 所以運行

echo %ERRORLEVEL% 

返回正確的值 「0」。

所以大概在Windows上執行MSC有一些這方面的困難。