Este es el comando shtool-scpp que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
shtool-scpp - preprocesador de archivos fuente GNU shtool C
SINOPSIS
taburete scpp [-v|--verboso] [-p|--preservar] [-f|--filtrar filtrar] [-o|--producción ofile]
[-t|--plantilla archivo] [-M|--Marcos marca] [-D|--definir nombre] [-C|--clase cname] presentar [presentar
...]
DESCRIPCIÓN
Este comando es un preprocesador de archivos fuente ANSI C adicional para compartir cpp(1) código
segmentos, variables internas y funciones internas. La intención de esto proviene de
escribir bibliotecas en ANSI C.Aquí se suele utilizar un archivo de encabezado interno compartido común para
compartir información entre los archivos fuente de la biblioteca.
La operación es analizar construcciones especiales en presentars, genere algunas cosas a partir de estos
construye e insértelos en la posición marca in archivo escribiendo la salida en ofile.
Además, el presentarLos s nunca se tocan ni modifican. En cambio, las construcciones se eliminan
más tarde por el cpp(1) fase del proceso de construcción. El único requisito previo es que cada presentar
tiene un "" #include ""ofile"""'' en la cima.
Este comando proporciona las siguientes características: Primero, evita la contaminación del espacio de nombres y
reduce los esfuerzos de creación de prototipos para símbolos internos al reconocer funciones y variables
que se definen con el identificador de clase de almacenamiento ''cname''. Por ejemplo, si cname is
`` intern '', una función `` "intern void * foobar (int quux)" '' en uno de los presentars es
traducido tanto a `` "#define foobar __foobar" '' como a `" extern void * foobar (int
quux); "'' en ofile. Además, un "#define" global cname "/ ** /" '' también se crea en
ofile para permitir que el compilador ignore silenciosamente este identificador de clase de almacenamiento adicional.
En segundo lugar, los archivos fuente de la biblioteca generalmente quieren compartir "typedef" s, "#define" s, etc.
los límites del archivo de origen. Para lograr esto, uno puede colocar estas cosas manualmente en
archivo o utilice la segunda función de scpp: Todo el código en presentars encapsulado con "" "#if"nombre
... "#endif" '' se copia automáticamente en ofile. Además, un "#define" global nombre
0 '' también se crea en ofile para permitir que el compilador omita silenciosamente estas partes (porque era
ya se encuentra en el encabezado).
OPCIONES
Están disponibles las siguientes opciones de línea de comando.
-v, --verboso
Muestra alguna información de procesamiento.
-p, --preservar
Conservas ofile independiente de las líneas `` #line '' generadas. Esto es útil para
Makefiles si el contenido real de ofile no cambiará, solo los números de línea. El valor predeterminado es
para sobrescribir.
-f, --filtrar filtrar
Aplicar uno o más preprocesos SED(1) filtrar comandos (generalmente de tipo
`` "s /.../.../" '') a cada archivo de entrada antes de analizar su entrada. Esta opción puede
ocurren varias veces.
-o, --producción ofile
Nombre del archivo de salida. El valor predeterminado es "lib.h".
-t, --plantilla archivo
Nombre del archivo de plantilla. El valor predeterminado es "lib.h.in".
-M, --Marcos marca
Marque para ser reemplazado por construcciones generadas. El valor predeterminado es "%% MARK %%".
-D, --definir nombre
ARREGLARME. El valor predeterminado es "cpp".
-C, --clase cname
ARREGLARME. El valor predeterminado es "pasante".
EJEMPLO
# Makefile
SRCS = foo_bar.c foo_quux.c
foo_p.h: foo_p.h.in
shtool scpp -o foo_p.h -t foo_p.h.in
-M %% MARK %% -D cpp -C pasante $ (SRCS)
/ * foo_p.h.in * /
#ifndef FOO_P_H
#definir FOO_P_H
%%MARCOS%%
#endif / * FOO_P_H * /
/ * foo_bar.c * /
#include "foo_p.h"
#si cpp
#define NUESTRO_INIT 4711
#terminara si
pasante en el nuestro;
estático int myone = 0815;
intern int bar (anulado)
{
nuestro + = myone;
}
/ * foo_quux.c * /
#include "foo_p.h"
int main (int argc, char * argv [])
{
int i;
nuestro = OURS_INIT
para (i = 0; i <10; i ++) {
bar();
printf ("nuestro ahora% d \ n", nuestro);
}
0 regresar;
}
HISTORIA
La GNU taburete scpp El comando fue escrito originalmente por Ralf S. Engelschall
<rse@engelschall.com> en 1999 para GNU taburete. Fue motivado por la necesidad de tener un pre
planta de procesamiento en el GNU PTH proyecto.
Use shtool-scpp en línea usando los servicios de onworks.net