Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-不推荐将字符串常量转换为‘;字符*’;在第三方标头中_C++ - Fatal编程技术网

C++ C++;-不推荐将字符串常量转换为‘;字符*’;在第三方标头中

C++ C++;-不推荐将字符串常量转换为‘;字符*’;在第三方标头中,c++,C++,我在.cpp文件中包含了几个第三方头文件(当然是用extern“C”包装的),在编译过程中,我收到了恼人的从字符串常量到“char*”的转换警告,即使我没有调用头文件中定义的函数。考虑到我无法更改标题,是否有一种好方法可以使这些警告静音/忽略,还是我必须忍受它们?您可以通过使用-Wno write strings编译来禁用警告 我假设这是我们在这里讨论的g++。您可以通过使用-Wno write strings编译来禁用警告 我假设这是我们在这里讨论的g++。您的编译器(GCC?)可能支持在一系

我在.cpp文件中包含了几个第三方头文件(当然是用
extern“C”
包装的),在编译过程中,我收到了恼人的
从字符串常量到“char*”
的转换警告,即使我没有调用头文件中定义的函数。考虑到我无法更改标题,是否有一种好方法可以使这些警告静音/忽略,还是我必须忍受它们?

您可以通过使用
-Wno write strings
编译来禁用警告


我假设这是我们在这里讨论的
g++

您可以通过使用
-Wno write strings
编译来禁用警告

我假设这是我们在这里讨论的
g++

您的编译器(GCC?)可能支持在一系列行或源上禁用警告

当然,您还应该向供应商报告错误

因此,您可以按照以下思路编写一些内容--特定于编译器:

#pragma PUSH COMPILER IGNORE SOME WARNING
#include <third_party_headers.h>
#pragma POP COMPILER IGNORE SOME WARNING
#pragma PUSH编译器忽略一些警告
#包括
#pragma POP编译器忽略一些警告
您的编译器(GCC?)可能支持在一系列行或源上禁用警告

当然,您还应该向供应商报告错误

因此,您可以按照以下思路编写一些内容--特定于编译器:

#pragma PUSH COMPILER IGNORE SOME WARNING
#include <third_party_headers.h>
#pragma POP COMPILER IGNORE SOME WARNING
#pragma PUSH编译器忽略一些警告
#包括
#pragma POP编译器忽略一些警告

这取决于您的编译器。下面是您为g++所做的:

#pragma GCC diagnostic ignored "-Wwrite-strings"
#include <files that generate the warning>
#pragma GCC diagnostic warning "-Wwrite-strings"
#pragma GCC诊断被忽略“-Wwrite strings”
#包括
#pragma GCC诊断警告“-Wwrite字符串”

这取决于您的编译器。下面是您为g++所做的:

#pragma GCC diagnostic ignored "-Wwrite-strings"
#include <files that generate the warning>
#pragma GCC diagnostic warning "-Wwrite-strings"
#pragma GCC诊断被忽略“-Wwrite strings”
#包括
#pragma GCC诊断警告“-Wwrite字符串”

这取决于您的编译器。大多数都有一个pragma/选项来禁用特定的警告。@Loki:C有字符串文本,这显然就是我们要讨论的
std::string
没有到
char*
的转换、不推荐的转换或其他转换,即使是常量。它取决于编译器。大多数都有一个pragma/选项来禁用特定的警告。@Loki:C有字符串文本,这显然就是我们要讨论的
std::string
没有到
char*
的转换,已弃用或其他,即使是常量。