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