vc2005 프로젝트를 vc2008 프로젝트로 변환시 발생하는 것으로 보인다.

컴파일러 경고(수준 3) C4748

오류 메시지

함수에서 최적화를 사용하지 않으므로 /GS를 지정해도 로컬 버퍼 오버런에서 매개 변수 및 지역 변수를 보호할 수 없습니다.
/GS can not protect parameters and local variables from local buffer overrun because optimizations are disabled in function

기본적으로 활성화되어 있는 /GS(버 퍼 보안 검사)는 함수의 최적화 기능을 사용하지 않는 한 함수의 매개 변수와 지역 변수에서 로컬 버퍼 오버런이 발생하지 않도록 보호할 수 없습니다.

함수에 jmp 또는 jcc와 같은 흐름 제어 문이 포함된 인라인 어셈블리 코드가 있는 경우 컴파일러는 최적화를 비활성화합니다.

이 경고를 해결하고 /GS를 사용하여 로컬 버퍼 오버런에서 매개 변수와 지역 변수를 보호하려면 최적화를 활성화해야 합니다.

http://msdn.microsoft.com/ko-kr/library/ms235398%28VS.80%29.aspx

MSDN 도움말을 찾아보니...

아아-_- ... 뭘 어떻게 하라는건지...;; orz;;


대부분의 구글 검색 결과도 MSDN 도움말의 답습일뿐
뽀족한 해결책은 제시하지 못하고 있는 상황에서 방황하던 중...

ogre 포럼에서 아래와 같은 주옥같은 답변을 찾아내게되었다 -_-)/

I've found the error: -
저는 에러를 찾았어요 >ㅁ<)/

Visual Studio 2008 SP1 turns off /O2 optimization when upgrading from VS 2005. Even if it *Looks* like its on, it may not be. Check that its actually in the command line (also - it is Bold in the IDE if its enabled).
비주얼 스튜디오 2008 SP1 은 O2 최적화를 꺼버립니다. VC2005 에서 업그레이드할때 말예요! 켜진 것처럼 보이지만, 그렇치 않습니다. 실제로 적용도는지 확인할 필요가 있어요. 커맨드라인에서 말이죠. ( IDE상에서는 굵고 진하게 볼드체로 되어있어야 합니다. )

I hope this helps someone googling :)
구글링을 통해 다른 분들에게 도움이 되었으면 좋겠내요 ^_^

http://www.ogre3d.org/forums/viewtopic.php?f=10&t=49787

와 >ㅁ<)/ 천사님!!


실제 Configuration Properties 의
C/C++/Optimization/Optmization 속성을 보면 볼드체가 아닌걸 확인할 수 있었다.

직접 항목을 다시 선택해주면 볼드체로 바뀌며 다시 링크를 해보면 C4748 경고는 사라지게 된다. ~(-_-)~








이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/02/11 22:39 2010/02/11 22:39

http://imp17.com/tc/myevan/trackback/251