Clang C ++抑制每个文件的-Wno-deprecated-declarations

时间:2017-01-23 21:04:49

标签: clang++ pragma suppress-warnings

在Xcode中,在项目级别,我有以下设置; Xcode setting to suppress deprecated function warning

这为编译添加了-Wno-deprecated-declarations,我可以从Report Navigator验证。此外,当我尝试使用已弃用的函数时,不会引发警告。

我想在单个文件中禁止此警告,因此我使用#pragma如下;

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wno-deprecated-declarations"

deprecated_function_call();

#pragma clang diagnostic pop

此代码提供以下编译错误; 错误:未知警告组'-Wno-deprecated-declarations',忽略[-Werror,-Wunknown-pragmas]

pragma clang诊断忽略“-Wno-deprecated-declarations”

编译器怎么可能使用这个警告标志,我不能在我的pragma中。

我的铿锵声版; Apple LLVM 8.0.0版(clang-800.0.36.1)

1 个答案:

答案 0 :(得分:1)

尝试:

#pragma clang diagnostic ignored "-Wno-deprecated-declarations"

而不是:

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>


<div ng-app="myApp" ng-controller="customersCtrl"> 

<table>
    <tr>
    <th>Nom</th>
    <th>Pays</th>
    <th>Ville</th>
    <th>button</th>
    </tr>
    <tr ng-repeat="x in myData">
    <td value="{{x.Name}}">{{ x.Name | uppercase }}</td>
    <td>{{ x.Country }}</td>
    <td>{{ x.City }}</td>
    <td><button ng-click="myFunction()">Click me!</button></td>
    </tr>
</table>

</div>

<script src="Ctrl.js"></script>

</body>
</html>

我刚刚遇到了与#34; -Wno-sign-compare&#34;类似的问题,这是通过使用&#34; -Wsign-compare&#34;来解决的。 (取而代之的是#34; no - &#34;部分)。

根据这种行为,我希望在你的情况下,&#34;弃用声明&#34;是警告组的实际名称,&#34; no - &#34;当用作编译器选项时,会添加前缀,以指示应忽略此组中的警告。该pragma已包含&#34;忽略&#34;关键字,可能解释为什么在pragma中没有使用相同的语法。