Visual Studio 2012에서 "전체 프로그램 최적화 -> 링크 타임 코드 생성 사용"외에도/opt : ref/VERBOSE 옵션을 사용합니다./opt : ref는 "링크 타임 코드 생성 사용"을 지정하면 사용하지 않는 함수를 기본적으로 제거한다고 가정했지만 사용되지 않는 함수를 제거해야합니다. 내 테스트 프로그램에서Visual Studio - 최적화 - 사용되지 않는 함수 제거
은 내가 최종 실행 파일에서 제거 할 것으로 예상 테스트 함수를 사용하여 VS 출력 사항을 확인하는 것 : /의 FA로 생성 된 * .ASM 파일을 찾고
Discarded "int __cdecl testMe(int)" ([email protected]@[email protected]) from Test.obj
그러나 ,은 (는) 최종 이미지에서 제거되지 않았거나 그래서
; Function compile flags: /Ogtp
; File c:\users\g.m\documents\visual studio 2012\projects\Test.cpp
; COMDAT [email protected]@[email protected]
_TEXT SEGMENT
[email protected]@[email protected] PROC ; testMe, COMDAT
...
: 나는 나열된 기능을 볼 수 있습니까?
편집 : 사소한 코드도 경우 기능에 나는 매우 의심스러운 찾을 무엇
static int testMe(int i)
{
return i + 1;
}
int main()
{
auto res = testMe(0);
}
을 최적화 "정적"입니다 될
는 여전히 * .ASM 파일
에 나타납니다
샘플로 업데이트되었습니다. – Ghita
필자가 생각하기에, 컴파일러는 아마도 코드에서 참조하기 때문에 함수를 생성하지만 링커는이를 제거합니다. – JasonD