我正在处理一个非常大的代码库,最近升级到GCC 4.3,现在触发了这个警告:
警告:不赞成将字符串常量转换为' char* '
显然,解决这个问题的正确方法是找到每一个声明
char *s = "constant string";
或者像这样调用函数:
void foo(char *s);
foo("constant string");
让它们成为const char指针。但是,这意味着至少要接触564个文件,这不是我目前希望执行的任务。现在的问题是我正在使用-Werror运行,所以我需要一些方法来抑制这些警告。我该怎么做呢?
回复shindow的“答案”:
PyTypeObject PyDict_Type =
{
...
PyTypeObject PyDict_Type =
{
PyObject_HEAD_INIT (&PyType_Type),
“东西”,
dict_print,
0,
0
};
注意名称字段。使用gcc时,它编译时没有警告,但在g++中会。我不知道为什么。
在gcc (Compiling C)中,-Wno-write-strings默认是激活的。
在g++(编译c++)中,-Wwrite-strings默认是活动的
这就是为什么会有不同的行为。
对于我们来说,使用Boost_python的宏会生成这样的警告。
所以我们在编译c++时使用-Wno-write-strings,因为我们总是使用-Werror。
我不明白如何应用你的解决方案:(- kalmanIsAGameChanger
在使用Arduino草图时,我有一个函数引起了我的警告。
最初的功能:
char StrContains(char *str, char *sfind)
为了停止警告,我在char *str和char * find前面添加了const。
修改:
char StrContains(const char *str, const char *sfind).
所有的警告都消失了。