무려 12년 전 -_-
...
철 없던 시절부터 만들었던 게임이
아직도 서비스 되는 행운(-_-) 으로 인해
요즘 만져야 하는 컴파일러가 vc6 부터 vc9 까지...
다양하다보니 프로젝트 파일 관리만으로도 정신이 없는 상황입니다.
평소 세심한 성격이 아니고
매의 눈을 가진 것도 아닌지라
프로젝트 포팅에 어려움을 겪고 있었는데
동호님께서 아래와 같은 멋진 툴을 알려 주시는군요! >ㅁ<)b
http://sourceforge.net/projects/vspc/
비주얼 스튜디오 프로젝트를 각 버전 별로 변환시켜주는 프로그램입니다.
정말 좋습니다 T _T)/
컴파일러 경고(수준 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 경고는 사라지게 된다. ~(-_-)~


python 을 좋아하는 게임 프로그래머