не может скомпилировать hello.cs для gtk # с помощью моно командной строки - PullRequest
5 голосов
/ 04 февраля 2012

надеялся, что это поможет, но получит другую ошибку.

пытается скомпилировать следующее как hello.cs

using Gtk;
using System;
class Hello
{
    static void Main()
    {
        Application.Init();
        Window window = new Window("helloworld");
        window.Show();
        Application.Run();
    }
}

Компиляция с помощью следующей команды "gmcs hello.cs -pkg: gtk-sharp-2.0"

в зависимости от командной строки я получаю cs0006 (моно cp) или cs2001 (win cp) о том, что файлы не могут быть найдены из моно CP говорит, что файл метаданных не может быть найден из win cp говорится, что исходный файл не может быть найден

Вот пример:

c:\Users\Stephen Lloyd\Desktop>gmcs hello.cs -pkg:gtk-sharp-2.0
-r:C:/Program Files \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/pango-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/atk-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
error CS2001: Source file `Files' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/pango-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/atk-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/glib-sharp.dll' could not be found
Compilation failed: 6 error(s), 0 warnings

Во всех случаях указанные DLL-файлы находятся в этой папке.

Есть мысли?

Ответы [ 4 ]

1 голос
/ 09 сентября 2012

В качестве альтернативы ручному вводу ссылок я обнаружил, что проще установить моно в путь без пробелов, называемый C: \ devtools \ mono, а затем добавить ... C: \ devtools \ mono \ bin к вашему пути.,Команда была тогда успешной для меня.Кроме того, у меня раньше была похожая проблема с использованием unix devtools для Windows, и это тоже сработало.

1 голос
/ 13 июня 2012

-pkg не работает в Windows; вам нужно будет предоставить индивидуальные индивидуальные -r[eference]: с. Пожалуйста, см. этот ответ для деталей.

0 голосов
/ 05 апреля 2016

У меня возникла та же проблема при запуске этого в Windows 10. Поскольку Windows поддерживает символические ссылки, начиная с Vista, я думал, что это может быть решением ... это работает для меня.

Как администратор, я создалсимвольная ссылка каталога из корневого каталога на моно:

cd \  
mklink /d mono "\program files x(86)\mono"

Затем, снова как администратор, я отредактировал свойства ярлыка «Открыть моно командную строку»:

Target: C:\Windows\SysWOW64\cmd.exe /k "C:\Mono\\bin\setmonopath.bat"  
Start In: C:\Mono  

Теперь, когда pkg-config анализирует путь к файлу mono.exe, который он "видит" только c:\mono, и продолжит добавлять остальную часть пути для разрешения необходимых пакетов.

Вы можете установить символическую ссылкуиз любого каталога.Я установил это от корня ради простоты.Основная цель - установить путь без пробелов и специальных символов.

0 голосов
/ 21 апреля 2014

Была эта проблема на MacOSX.Решение добавить каталог mono bin в path решило это для меня.

В частности, "/Library/Frameworks/Mono.framework/Versions/Current/bin" должен был быть на моем пути.

Я сделал это:

export MONOPATH=/Library/Frameworks/Mono.framework/Versions/Current
export PATH=${PATH}:${MONOPATH}/bin

И после этого я смог скомпилировать с помощью:

gmcs /t:exe /debug+ -pkg:dotnet WinFormsHello.cs 

(аналогично для gtk # и т.д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...