2016-12-19 6 views
1

Xcode 프로젝트에서 이상한 경고가 표시됩니다. 그것은 무엇이며 나쁜 것입니까?프로젝트 설정 권장 컴파일러 경고 : "Suspicious Moves"

프로젝트 '리틀 고함 소리'- 이것은 다음과 같은 권장 컴파일러 경고있게 권장 경고 사용 : : 여기

경고의

  • 의심스러운 이동을

그것을 또한 다른 설정을 업데이트 할 것을 권장합니다.

대상 'Little Hoot'- 업데이트 C++ 표준 라이브러리 'libstdC++'C++ 표준 라이브러리는 더 이상 사용되지 않습니다. Target 'Little Hoot'의 설정이 'Compiler Default'로 업데이트됩니다.이 값은 권장 값입니다.

온라인에서 보았는데 적어도 첫 번째 경고에 대한 답변을 찾을 수 없습니다. 새 프로젝트를 설정하는 동안

Screenshot

답변

0

나는 최근 엑스 코드에서이 메시지를 받았습니다. 내 단계는 Info.plist와 같은 파일에서 참조를 제거하고 Finder에서 직접 폴더를 만들고 Xcode에 파일을 다시 추가하는 것이 었습니다. 나는 그것이 보안 기능이라고 생각하지만 귀하의 사건이 나의 것과 같다면 그것은 단지 경고 일뿐입니다.

+0

감사! 그게 내 문제를 해결해 줬어. – Bootsie123

0

두 경고 모두 권장 기본값을 반영하지 않은 프로젝트 설정을 나타냅니다. 아마도 Xcode 버전을 업그레이드하거나 오래된 프로젝트를 Xcode의 이후 버전으로 가져온 후에이 둘은 모두 트리거되었을 것입니다.

달리해야 할 특별한 이유가있는 경우가 아니면 권장 사항을 따르는 것이 가장 좋습니다. 가장 쉬운 방법은 경고와 함께 나타나는 노란색 삼각형을 클릭하고 Xcode가 설정을 적절하게 변경하는 것입니다. -Wpessimizing-move, -Wredundant-move-Wself-move :

4

은 "의심스러운 이동"프로젝트/목표 설정은 3 개 다른 경고 옵션의 그룹입니다 LLVM/연타, optionin -Wmove 컴파일러 경고를 제어하는 ​​것 같다.

이러한 옵션은 이러한 경고를 생성합니다

그래서 아마 당신이 추천을 적용하고 경고를 활성화하거나하지 않고 이동 여부를 큰 문제가 아니다 (http://clang.llvm.org/docs/DiagnosticsReference.html에서 연타 문서에서)

warning: moving a temporary object prevents copy elision 
warning: moving a local object in a return statement prevents copy elision 
warning: redundant move in return statement 
warning: explicitly moving variable of type A to itself 

. 의심스러운 움직임으로 물건을 느리게 만들면 그 사실을 알 수 없습니다.

0

주의 경고, 사용하지 않은 매개 변수 및 자동 합성 속성을 제외한 모든 경고는 켜야합니다. 이 세 가지 경고는 수많은 좋은 코드에 대해 경고합니다. 정적 분석기 경고와 동일합니다.

그런 다음 어떤 경고를 받았는지 살펴보고 수정합니다. 이전에이 작업을 수행하지 않았다면 모든 경고의 20-40 %가 코드의 실제 버그라고 추정 할 수 있습니다.

0

see warning detail in issue navigator section 수 있습니다. 문제를 선택하여 문제를 해결할 수 있습니다. 그러면 프로젝트 설정에서 필요한 변경 사항을 알리는 경고가 표시됩니다.

변경 수행 버튼을 클릭하십시오. 이렇게하면 프로젝트 설정에서 필요한 변경이 이루어 지므로이 경고가 제거됩니다.