在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中。
我的铿锵声版; Apple LLVM 8.0.0版(clang-800.0.36.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中没有使用相同的语法。