Il progetto che sto compilando utilizza CMake, che loves absolute pathnames.Crea gcc inserisce i relativi nomi di file nelle informazioni di debug
Quando compilo con le informazioni di debug abilitate, gcc inserisce questi nomi lunghi nelle sezioni .debug_str
, il che è dannoso per il debug. Mi piacerebbe avere un breve percorso relativo a progetto relativo a root lì invece.
C'è qualche opzione per dire a gcc di rimuovere alcune parti del percorso prima di emettere i dati di debug? O forse c'è qualche strumento che potrebbe farlo sui binari compilati?
Ho provato a utilizzare l'opzione SET(CMAKE_USE_RELATIVE_PATHS ON)
(che sembra essere frowned upon per dev), ma poiché sto utilizzando build non basate sull'origine, i nomi dei percorsi non sono ancora nella forma che vorrei che fossero. Cioè sono ./../src/mod_foo/foo.c
anziché mod_foo/foo.c
.
'./../ src/mod_foo/foo.c' è un percorso ** relativo ** ... –
Sì, ma non relativo * alla radice del progetto *, sebbene (che sia a' ../ src') – drdaeman
Hai un problema con CMake, non con gcc. GCC inserisce in '.debug_str' esattamente come ottiene un argomento da linea di comando. – sirgeorge