2012-02-03 14 views
5

Esperaba que this ayudaría, pero obteniendo un error diferente.no se puede compilar hello.cs para gtk # usando el comando de comando mono

intentar compilar los siguientes como Hello.cs

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

Compilar con el siguiente comando "GMC Hello.cs pkg: gtk-sharp-2.0"

dependiendo del símbolo del sistema, lo 'm que recibieron CS0006 (cp mono) o CS2001 (ganar cp) diciendo que los archivos no se pueden encontrar de cp mono que dice que el archivo de metadatos no se puede encontrar de victoria cp dice que el archivo de origen no se puede encontrar

Aquí hay un ejemplo:

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 

En todos los casos, los archivos .dll a los que se hace referencia se encuentran en esa carpeta.

¿Alguna idea?

+0

Lo primero: tenga en cuenta que las rutas dadas en -r no se analizaron correctamente, debería ponerlas entre comillas. Pegue el comando de Linux y la salida también. –

+0

esto fue desde el símbolo del sistema de Windows 7. 'gmcs hello.cs -pkg: gtk-sharp-2.0' era mi única entrada. todo lo demás fue generado. –

+1

Intente configurarlos manualmente mediante -r sin utilizar el parámetro -pkg. –

Respuesta

1

-pkg no está funcionando en Windows; Necesitará suministrar individualmente -r[eference]: s. Por favor, consulte this answer para más detalles.

1

Como alternativa a la introducción manual de referencias, me pareció más fácil simplemente instalar mono en una ruta sin espacios, también conocido como C: \ devtools \ mono y luego agregar el ... C: \ devtools \ mono \ bin a su camino. El comando fue exitoso para mí. Como un aparte, he tenido un problema similar antes con el uso de DevTools de Unix en Windows y esto también ha funcionado allí.

0

Tuve este problema en MacOSX. La solución para agregar el directorio mono bin a la ruta lo resolvió para mí.

Específicamente, "/Library/Frameworks/Mono.framework/Versions/Current/bin" necesitaba estar en mi camino.

Hice esto:

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

Y después, yo era capaz de compilar a través de:

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

(lo mismo para GTK #, etc)

0

que estaba teniendo el mismo problema al ejecutar esto en Windows 10. Dado que Windows admite enlaces simbólicos, desde Vista, pensé que esta podría ser una solución ... funcionó para mí.

como administrador, he creado un enlace simbólico al directorio desde el directorio raíz de mono:

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

Entonces, de nuevo como administrador, he editado los "Abrir Mono Símbolo del sistema" propiedades de acceso directo:

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

Ahora cuando pkg-config analiza la unidad de disco de mono.exe, "ve" solo c:\mono y procederá a anexar el resto de la ruta para resolver los paquetes necesarios.

Puede establecer su enlace simbólico desde cualquier directorio. Lo configuro desde la raíz en aras de la simplicidad.El objetivo principal es establecer una ruta sin espacios ni caracteres especiales.

Cuestiones relacionadas