[TOOL] Parámetros para Bgdc.exe

Started by izubiaurre, October 16, 2007, 05:51:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

izubiaurre

Hola,

he necesitado de esta lista para compilar y ejecutar mi jueguecito en Bennu, y creo que será de utilidad para alguno. Son los parámetros que puede tomar el ejecutable:

Use: bgdc [options] filename

   -d              Debugging mode
   -o ouputfile    Ouput DCB file
   -i dir          Adds the directory to the PATH
   -a              Automaticaly adds all files to the DCB
   -f file         Adds a single file to the DCB
   -l lang         Specify locale settings
   -s stub         Generate a stubbed executable from the given stub
   -g              Stores debugging information at the DCB
   -c              File uses the MS-DOS character set
   -D macro=text   Set a macro
   -p|--pedantic   Don't use automatic declare
   --libmode       Build a library
   -L library      Include a library
   -C options      Specify compiler options
                   Where options are:
                   a    Enable automatic declare functions



   Compiling multiple sources:

      Se pueden compilar múltiples fuentes desde la línea de comandos (como #include).

      Modo de uso:
         > bgdc prg1.prg prg2.prg


   Debugging mode ( -d):
   
      Modo debug. Permite ejecutar la consola para visualizar el estado de la ejecución (Ctrl + C):
         * estado de los procesos
         * visualizar/cambiar los valores de las variables, estructuras
         * ...
         
      Modo de uso:
         > bgdc.exe mi_programa.prg -d
   
   Adds the directory to the PATH    ( -i dir):
   
      Añade el directorio dir al PATH.
     
      Modo de uso:
         > bgdc.exe mi_programa.prg -i \DATA\
         > bgdc.exe mi_programa.prg -i \DATA\ -i \USR\SRC\BIN\ -i \DATA\STUB\

   Output DCB file (name) (-o outputfile) :

      Cambia el nombre de salida del dcb a outputfile. Sus extensiones pueden ser dcb, dat o bin.

      Modo de uso:
         > bgdc.exe mi_programa.prg -o juego.dcb
         
   Automaticaly adds all files to the DCB ( -a):
   
      Añade todos los archivos al DCB. Todos los archivos (wav, ogg, map, pal, fpg, ...) son añadidos automáticamente al DCB. Los archivos de librerías DLL no se añaden al DCB.

      Modo de uso:
         > bgdc.exe mi_programa.prg -a
   
   Adds a single file to the DCB ( -f file):
   
      Añade un archivo al DCB. También se pueden añadir varios archivos nombrándolas uno a uno:
     
      Modo de uso:
         > bgdc.exe mi_programa.prg -f menu.fpg
         > bgdc.exe mi_programa.prg -f menu.fpg
                           -f menu.ogg
                           -f menu.map


o, definirse a un archivo tipo listado en el que se enumeran todos los archivos a incluir. En este último caso, se definiría de la siguiente forma:
         
> bgdc.exe mi_programa.prg -f @include_files.lst           <-- el archivo-lista debe llamarse include_files.lst
                           -f @sound_files.lst            <-- el archivo-lista debe llamarse sound_files.lstp

         
   Specify locale settings   ( -l lang):

      Obsoleto.
     
   Generate a stubbed executable from the given stub ( -s stub):
   
      Genera un ejecutable con el intérprete y el DCB integrado.
   
      Modo de uso:
         > bgdc.exe mi_programa.prg -s bgdi.exe

         
      No es necesario llamar al stub con path absoluto; si existe en el mismo directorio de trabajo que el compilador es suficiente.
     
      Nota: No se crea ningún dcb intermedio. Se crea directamente el ejecutable (.exe) con el stub y el dcb dentro.
         
   Stores debugging information at the DCB ( -g):

      Guarda información de debug en el DCB (no sé exáctamente qué es).
     
      Modo de uso:
         > bgdc.exe mi_programa.prg -g
         
   File uses the MS-DOS character set ( -c):
   
      Señala al copilador que nuestro código contiene carácteres de MS-DOS (ahora en desuso). Estos carácteres aparecen en ejemplos de DIV y DIV2 generalmente. Recordad que es una "c" en minúscula, mientras que en mayúscula significa opciones de compilación especiales.
     
      Modo de uso:
         > bgdc.exe mi_programa.prg -c
         
   Set a macro ( -D macro=text):
   
      Envía un macro al compilador. Un macro puede ser la definición de una constante, como DEBUG, ANCHO_PANTALLA=640 ALTO_PANTALLA=480 ó BUFFER=100.

         -D DEBUG

         > bgdc.exe -D DEBUG mi_programa.prg
         > bgdc.exe -D DEBUG -D BUFFER=100 -D MAX_NPC=1000 mi_programa.prg
           
      y luego en tu codigo poner:
           
#ifdef DEBUG
...
#endif


      Con esto se puede usar código que solo se ejecute en modo debug cuando lo compilas en modo debug. Lo mismo en FULL y RELEASE ( -D FULL, -D RELEASE). Sería como un #define, pero al no estar en el código, permite flexibilidad para compilar diferentes versiones sin tener que tocar el código.
           
      Lo mismo para el macro:

      -D BUFFER=100      

      donde en el código se podría poner:
     
      array[BUFFER] = "Última posición en el array";      

   Build a library ( --libmode):

      La salida del compilador será una librería hecha en Bennu, pero en formato dbl (en vez de dcb).

      Modo de uso:
         > bgdc.exe --libmode mi_programa.prg

   Include a library ( -L library):-L library     

      Incluye específicamente una librería de Bennu (dbl).

      Modo de uso:
         > bgdc.exe -L nombre_librearía.dbl mi_programa.prg
         > bgdc.exe -L nombre_librearía.dbl -L lib2.dbl -L lib3.dbl mi_programa.prg

     
   Specify compiler options ( -C options):
                   
      a    Enable automatic declare functions:
     
         Permite la declaración de funciones automáticamente. Muy útil cuando no queramos declarar las funciones, pero tiene sus contraindicaciones, posibles bugs y descenso de efectividad en tiempo de ejecución. Utiliza como parámetro una "c" en mayúscula y los parámetros siguientes pueden ir juntos o aparte.
     
      Modo de uso:
         > bgdc.exe mi_programa.prg -C a
> bgdc.exe mi_programa.prg -Ca
   

Ahora mismo es necesario compilar como bgdc.exe -C a   si no tienes definidos las funciones...

Y la definición de las funciones serían de esta manera:


Declare menu(); end
Declare nave_enemigo(x,y); end
Declare prota(x,y, vida, nivel); end


Un Declare por cada. Si no, se puede ordenar las funciones (cuando digo funciones digo también procesos) según el uso; tener escrito en nuestro código antes de su llamada.

syous

Un Saludo
EL dia que la humanidad aprenda a mirar y sentir con los ojos del alma, recuperara su humanidad
http://sodonline.net/
http://darknessage.ayudaprogramacion.net/
http://www.ayudaprogramacion.net/

Proyecto: MMORPG
Completado: 2%
Estado: En Desarrollo...

izubiaurre

No está totalmente completa. Si conocéis qué hace álguno de los parámetros que no conozco o simplemente, pensáis que necesita una descripción mejor, responded en este hilo e iré mejorándolo.

SplinterGU

Las macros son constantes que puedes definir desde linea de comando, y sirven para muchas cosas, por ejemplo, habilitar o deshabilitar partes de tu codigo, o seleccionar funcionalidades diferentes en tu proyecto (por ejemplo, generar un proyecto en modo demo o modo release), o por ejemplo, poder definir constantes que te serviran luego en tu codigo, por ejemplo, ANCHO_PANTALLA=800 y luego si usas en tu codigo ANCHO_PANTALLA es lo mismo que poner 800, son como defines, pero no puedes usar la sintaxis de parametros de los defines...

Los parametros por ejemplo el -C no es necesario poner un espacio para poner la subopcion, se puede usar directamente -Ca

-l es el archivo de lenguaje de los mensajes, algo asi como el gettext (no lo he probado, pero supuestamente funciona)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

izubiaurre

#4
Un duda:

si quiero insertar el ejecutable bgdi.exe como stub con el parámetro -d ( bgdc.exe -s bgdi.exe ... ), el archivo stub debe ir con el path completo? Como lo lleva el bgdc.exe?

Creo que sí... ya que al ejecutarlo como si fuese un archivo local (sin path completo), la compilación no me da errores, pero no se ejecuta.

SplinterGU

Si esta en el mismo directorio que el bgdc, no hace falta ponerle el path... es mas, te diria que no lo pongas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

izubiaurre

Pues me da problemas el parámetro de stub. Ejecuto de esta manera:

path\..\bgdc.exe -g -s bgdi.exe -Ca path\..\mijuego.prg

Se compila bien; no hay errores. Pero, no se ejecuta el juego. Me he saltado algo?

SplinterGU

claro, tenes que estar en el path del prg... o sea, no tenes que ponerle el path...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

izubiaurre

No lo he entendido. Parece que esa llamada funcione debo estar en el directorio del prg? Y si quiero ejecutarlo desde el directorio donde está el FBMX (o sea, desde la IDE). Entonces, el path del stub, cómo iría? Como las demás? Con path absoluto?

SplinterGU

La verdad que no recuerdo bien como es, y dispongo de cero tiempo para probarlo o revisar el codigo, probaste todas las opciones posibles?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

blostec

#10
Lo he probado en la consola, dentro del directorio donde tengo instalado Bennu, de la siguiente forma:

bgdc -g -s bgdi -Ca D:\prueba\prueba1.prg

Me ha compilado y generado el .exe correctamente.

*************
Tambien he probado ubicando el interprete en otro directorio diferente al del compilador:

bgdc -g -s E:\prueba2\bgdi.exe -Ca D:\prueba1\prueba1.prg

Funciona correctamente.

No se si te servira de algo.  :-[

P.D. se me olvidaba, gracias por la lista detallada de los parametros. Es realmente muy util, gracias!


izubiaurre

ya he encontrado el "error". A decir verdad, no era un error. Si no, que al generarse un .exe directamente, (no se crea un .dcb) pensaba que había algún problema porque no se ejecutaba la dcb. Resumiendo, no hay ningún problema en bgdc con el parámetro -s stub. hay que tener cuidado para que no se nos olvide, que se crea un .exe directamente.

PD. Actualizo la info de los parámetros.

izubiaurre

Bueno haré los cambios cuando el ratón me haga caso y el ordenador deje de ronronear...

SplinterGU

Creo que sos la unica persona que no sabia que no se crea un dcb sino en exe... esto se explico muchas veces... jejeje... dicen que el que comete errores es porque hace cosas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

izubiaurre

Es lógico que no se crea una dcb intermedia, pero en el momento no me llegó la luz.

Aún así, me faltan por documentar varios parámetros y creo que he liado los parámetros -d y -g.