2005 컴파일러를 사용하여 Visual Studio 2010에서 프로젝트를 컴파일하려고했는데이 이상한 버그가 발생했습니다.VS2005 C++ 컴파일러가/Gd 플래그와 충돌 함
"Microsoft (R) C/C++ 컴파일러 최적화"오류 대화 상자에서 "보내지 않음"버튼을 사용하여 VS2010에서 컴파일 할 때마다 컴파일러와 충돌하는 특정 파일이 있습니다. VS2010이 2005 컴파일러를 호출하는 방식을 살펴본 결과 VS2005가 호출하는 방식과 약간의 차이가 있음을 알게되었습니다. 그래서 매번 시도한 후에 컴파일을 시도하면서 이러한 차이점을 하나씩 삭제하기 시작했고, 일단 /Gd
플래그를 제거하면 파일이 성공적으로 컴파일되었습니다.
컴파일러 문서를 보면이 플래그는 호출 규칙을 제어하고 기본값 인 __cdecl로 설정합니다. VS2005에서는 차이점 만 빠뜨렸지 만 VS2010을 명령 줄에 추가하여 충돌을 일으 킵니다.
누구든지이 문제가 발생했거나이 문제를 해결할 방법을 알고 있습니까? VS2010을 기본으로 설정 했는데도 명령 줄에서 /Gd
을 삭제하는 방법을 찾지 못했습니다. 내가 찾을 수있는 것은 제거하는 것이 아니라 매개 변수를 추가하는 것입니다.
감사합니다.
/Gd가 MSVC6 이상으로 돌아 간다는 점에서 주목할 만하다. 충돌하는 호출 규칙 플래그가 있습니까? – MSalters
이 파일에는 암시 적/Gd 플래그가 주어 졌을 때 충돌을 일으키는 아주 특별한 코드가 있어야합니다. 내가 코드를 찾고 싶다면 코드 조각에 주석을 달아야한다. 하지만 수천 개의 파일이있는 특정 파일에서 수정해도 도움이 될지 확신 할 수 없습니다. 그래서 내가 처음에는/Gd 플래그를 사용하지 않도록하는 해결 방법을 찾고 있습니다. –