Compartir a través de


Error de la línea de comandos D8049

no se puede ejecutar "compiler-component": la línea de comandos es demasiado larga y no cabe en el registro de depuración

Se superó un límite de longitud interno en las rutas de acceso de inclusión del registro de depuración.

Comentarios

Cuando el compilador crea registros de depuración en un archivo objeto, usa la ruta de acceso completa para cada archivo incluido. Las rutas de acceso absolutas se registran según lo especificado. Para las rutas de acceso de inclusión relativas, el registro de depuración antepone el directorio de trabajo actual de la compilación a la ruta de acceso relativa. Si la compilación se ejecuta en una ruta de acceso relativamente profunda, los registros de la ruta de acceso correspondientes se alargan. La longitud total de rutas de acceso demasiado largas puede superar los límites internos del compilador.

Para resolver este problema

  • Use rutas de acceso más cortas para los directorios de inclusión y compilación. Instale encabezados de inclusión de biblioteca en directorios con rutas de acceso más cortas y use rutas de acceso cortas para los directorios de compilación intermedios y de destino de los proyectos. Si establece rutas de acceso de alias, use alias cortos. Establezca %TMP% y %TEMP% en directorios que tengan rutas de acceso más cortas.

  • Optimice los archivos de inclusión en el conjunto mínimo necesario para cualquier archivo de origen determinado. Este método también tiene la ventaja de acelerar los tiempos de compilación. Si usa encabezados precompilados, es importante optimizar el conjunto de encabezados que incluya en el archivo de encabezado precompilado. En soluciones complejas, puede que valga la pena crear diferentes encabezados precompilados optimizados para distintas partes del proyecto. Si el código usa C++20, se recomienda usar módulos o módulos de encabezado antes que encabezados precompilados.