así que estoy trabajando en una base de código excesivamente grande, y recientemente actualizado a gcc 4.3, que ahora activa esta advertencia:¿Cómo deshacerse de la conversión obsoleta de la constante de cadena a las advertencias de 'char *' `en GCC?
advertencia: desaprobado conversión de cadena constante a 'char *'
obviamente, la forma correcta de solucionar este problema es encontrar cada declaración como
char *s = "constant string";
o llamada de función como:
void foo(char *s);
foo("constant string");
y hacerlos const char
punteros. Sin embargo, eso significaría tocar 564 archivos, como mínimo, lo cual no es una tarea que desee realizar en este momento. El problema ahora mismo es que me estoy ejecutando con -werror
, así que necesito alguna manera de reprimir estas advertencias. ¿Cómo puedo hacer eso?
Cuando llegas a hacer frente al reemplazo de 554 líneas, sed es un buen amigo. Asegúrate de hacer una copia de seguridad primero. – Matt
Miré las discusiones sobre cómo suprimir los mensajes de error y cuáles deberían ser los reemplazos correctos. No tengo ninguna opinión sobre eso. Sin embargo, creo que Matt está en el camino correcto. Defina lo que quiere reemplazar por qué. Solo necesitas las expresiones regulares correctas. Haga los cambios en una copia. Use "diff" para compararlos con el original. Hacer los cambios usando sed es rápido, fácil y gratis, y diff también es rápido, fácil y gratis. Pruébelo y vea cuántos cambios debe revisar. Publique lo que desea reemplazar por qué, y permita que los usuarios sugieran reemplazos de expresiones regulares. –