2015-11-08 3 views
1

Я пытаюсь получить Mono и Gtk #, работающие в Windows.Mono Gtk # Невозможно скомпилировать учебник для начинающих

Когда я пытаюсь запустить MCS Hello.cs -r: "C: \ Program Files (x86) \ Mono \ 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 атк-диез, V ersion = 2.12.0.0, Culture = нейтрально, PublicKeyToken = 35e10195dab3c99f»C: \ Program Files (x86) \ Моно \ 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 е сымских бол, связанные с предыдущей ошибки) компиляции не удалось: 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(); 
    } 
} 

Когда я пытаюсь запустить: (как показано в tutorial), я получаю следующую ошибку:

Пакет gtk-sharp.2.0 не найден в пути поиска pkg-config. Возможно, вы должны добавить каталог, содержащий gtk-sharp.2.0.pc, в переменную окружения PKG_CONFIG_PATH. Нет пакета «gtk-sharp.2.0» обнаружена ошибка CS8027: Ошибка при запуске pkg-config. Проверьте вывод выше.

Я ничего не нашел в сети, может кто-то помочь?

Спасибо!

ответ

0

Хорошо, проблема заключается в том, что командная строка mcs Option -pkg: gtk-sharp-2.0 не работает под Windows, в Ubuntu работает нормально.

В пути pkg-config есть необходимый файл gtk-sharp-2.0.pc, если я запустил pkg-configure, он также найдет пакет gtk-sharp.

Если кто-нибудь знает, как исправить эту проблему в Windows, было бы хорошо.

Для всех, кто столкнулся с такой же проблемой, как мне, добавить все необходимые библиотеки DLL в MCS в опции -r:

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 для окон не возвращает 0 или 1, если вы спросите, найден ли пакет.

Так работает

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

возвращается заверив, но когда вы смотрите на% ERRORLEVEL%, это правильно Так работает

echo %ERRORLEVEL% 

возвращает правильное значение "0".

Возможно, что реализация msc на окнах имеет некоторые трудности с этим.

Смежные вопросы