El proyecto que estoy compilando utiliza CMake, que loves absolute pathnames.Hacer gcc poner nombres de archivo relativos en la información de depuración
Cuando compilo con la información de depuración habilitada, gcc pone esos largos nombres en las secciones .debug_str
, lo cual es malo para la depuración. En su lugar, me gustaría tener nombres de rutas cortas relativas a raíz del proyecto.
¿Hay alguna opción para decirle a gcc que quite parte de la ruta antes de emitir datos de depuración? O, tal vez, hay alguna herramienta que podría hacer eso en los binarios compilados?
He intentado usar la opción SET(CMAKE_USE_RELATIVE_PATHS ON)
(que parece ser frowned upon por los desarrolladores), pero como uso compilaciones fuera de la fuente, los nombres de las rutas aún no están en la forma en que yo quisiera que estuvieran. Es decir. son ./../src/mod_foo/foo.c
en lugar de mod_foo/foo.c
.
'./../ src/mod_foo/foo.c' es una ruta ** relativa ** ... –
Sí, pero no relativa * a la raíz del proyecto *, aunque (que está en' ./ ../ src') – drdaeman
Tiene un problema con CMake, no con gcc. GCC pone en '.debug_str' exactamente que se obtiene como un argumento de línea de comando. – sirgeorge