Tengo un archivo de origen que preprocesamos utilizando las opciones -E
y -P
(utilizando GCC 4.1.2 para una plataforma integrada basada en vxWorks). Todas las otras opciones son las mismas que cuando compilo el archivo. Estas opciones son:Compilación de cambios de archivos preprocesados anteriores, salida
-Wall
-march=pentium
-nostdinc
-O0
-fno-builtin
-fno-defer-pop
-g
-c
-o
, así como todas las rutas de acceso incluidas. Ahora cuando compilo este archivo preprocesado, el archivo objeto resultante es mucho más pequeño (alrededor del 30%) que cuando compilo el original directamente. Y cuando luego enlace el programa, el enlazador se queja de los símbolos que faltan (todos en código de usuario), lo que de nuevo no ocurre cuando se utiliza el archivo fuente original. ¿Por qué hay una diferencia? ¿Hay alguna manera de hacer funcionar esto?
Estoy modificando la regla que crea el archivo objeto simplemente agregando el indicador ''E'- y' -P', sin eliminar nada, así que estoy bastante seguro de que estoy usando el compilador correcto y tengo todo el define. –