2010-10-09 13 views
5

He estado jugando con D durante unos días y me estaba emocionando bastante hasta que, es decir, intenté hacer funcionar gtkd. Ahora perdí la mayor parte de 3 días tratando de obtener una configuración de trabajo y estoy empezando a obtener (leer, hace mucho tiempo lo conseguí) un poco desmoralizado. Me preguntaba si alguien puede ayudarme antes de rendirme. Mucha de la información que puedo encontrar en línea está desactualizada, así que no estoy seguro si estoy en lo cierto al pensar que esto es posible.Configuración de una cadena de herramientas D2.x de trabajo (con gtkd) en Ubuntu 10.04

El resto de este se trata sólo de lo que he probado hasta ahora y puede que no tenga que leerlo si usted tiene una solución rápida, por lo que no dude en saltar a ... [Saltar a aquí]

Así que, en primer lugar, necesito saber, el tango está realmente disponible para su uso con D2.0, creo que no fue originalmente, pero ahora D2.x es tal que puedes usar tango y phobos uno junto al otro. Si esto no es cierto, entonces creo que he caído en el primer obstáculo y este no es un ganador.

Los pasos que he dado hasta ahora.

  1. He instalado GDC desde los repositorios de Ubuntu
  2. he instalado libtango cabeceras de los repositorios (nota, sólo los encabezados, no hay librerías disponibles, así que no es de mucha ayuda)
  3. He instalado manualmente DSSS

Esta configuración compilaría D, pero cuando llegué a la instalación de gtkd (con dsss), se compiló pero obtuve todo tipo de errores (relacionados con el tango) al intentar compilar cualquier cosa que lo utilizara. Bueno, como he mencionado, no tenía las librerías así que esto no debería haber sido inesperado. Traté de instalar las tango libs manualmente pero todavía recibí un montón de errores y al final recurrí a un dsss net install tango que me advirtió que no sería capaz de volver a phobos (algo que me confundió ya que, como he mencionado, pensé que dos se podrían usar uno al lado del otro) de todos modos, procedí y atornilló completamente mi configuración. No pude compilar ninguna D ahora.

Lo siento, no podría ser más explícito acerca de los errores que obtuve en la última sección, la verdad es que no recuerdo.

De todos modos, eliminé todo lo que tenía instalado. Y comenzó de nuevo.

  1. He instalado GDC de repos
  2. He instalado manualmente DSSS

ahora leo que el último tango no funciona con GDC (no estoy seguro si esto es cierto), así que

  1. Obtuve el deb para dmd y lo instalé.
  2. Se instaló manualmente el tango probado (libs y encabezados).
  3. gtkd Instalado con DSSS

Ahora no puedo conseguir DSSS para reconocer DMD, por lo que sólo se puede utilizar GDC con él. Eso sin embargo no encuentra tango. Si utilizo dmd directamente, encuentra tango y gtkd, pero recibo errores sobre las declaraciones volatile que están en desuso. Algo que es aparentemente cierto en D2.x, lo que me lleva de vuelta a "es tango incluso compatible".

Gosh ¡Estoy confundido!

[Ir al aquí]

Si alguien me puede dar instrucciones paso a paso sobre cómo conseguir una configuración de trabajo establecido, estaría siempre agradecido!

Gracias, T.

Actualización:"! Estamos ahí"

lo que he descargado desde dmd.2.049.zip http://www.digitalmars.com/d/download.html y se extrajo a mi directorio personal y realizó un export PATH = $PATH:~/dmd2/linux/bin (gracias a dsimcha).

Se olvidó de dsss. Obtuve la versión svn de gtkd según las instrucciones en http://www.dsource.org/projects/gtkd/wiki/UsingSubversion. Editado GNUmakefile para cambiar el prefijo a /home/me/dmd2/linux e hizo un make install.

Editado por lo que el ~/dmd2/linux/bin/dmd.conf incluyen caminos incluidos ../include (las librerías gtkD se ponen en ../lib, así que no necesito editado las rutas de bibliotecas).

Ahora, finalmente, para compilar con gtkD tuve que vincular con libgtkd y libdl, esto fue hecho por, dmd mydprog.d -L-lgtkd -L-ldl (gracias a jpf).

Respuesta

6
  1. Tango no funciona con D2. Hubo un esfuerzo hace mucho tiempo para portarlo, pero este tipo de golpe en una pared y no está claro si esto alguna vez va a terminar. OTOH Phobos para D2 es mucho mejor que Phobos para D1, por lo que la falta de Tango no es tan mala como suena.

  2. GDC es compatible con una versión antigua de D2. No hay absolutamente ninguna posibilidad de que gtkD compile con él. Deberías usar el compilador DMD de referencia.

  3. Generalmente, la forma correcta de configurar DMD en Linux es simplemente descomprimir dmd.2.0xx.zip en su directorio de inicio y hacer un export PATH = $PATH:~/dmd2/linux/bin para asegurarse de que el ejecutable DMD se encuentre en su ruta. Entonces, todo debería funcionar (con DMD2 y Phobos).

+0

Gracias eso despeja mucho. Me siento mejor ahora :). Sin embargo, cualquier idea de cómo funciona gtkd. Tengo 'dsss' compilando solo con Phobos ahora y la configuración' dmd' como sugirió. Intenté instalarlo (gtkd) en 'prefix = ~/dmd2/linux /' y edité 'dmd.conf' para cambiar los directorios de inclusión, pero no tuve suerte. – tjm

+0

Ok un poco de suerte, he puesto una edición en mi publicación para explicar la situación actual; ahora recibo errores de enlazador. – tjm

4

Si desea que dmd pase argumentos al vinculador, tiene que ponerle un prefijo -L. Creo que para gtkd debe vincular a la biblioteca gtkd y libdl.

-L-lgtkd -L-ldl 
+0

Fantástico, gracias. Había visto la bandera -L y había intentado '-Lgtkd' y' -Llgtkd' pero nunca pensé en '-L-l ...'. Todo funciona ahora. – tjm

+0

¡maravilloso! Tenía el mismo problema, y ​​estaba probando todas las variantes de -Lgtkd en las que podía pensar. nunca hubiera pensado intentar -L-l ... (¡y la documentación es difícil de encontrar!) –

Cuestiones relacionadas