Microsoft cl 컴파일러를 사용하여 win32 용 ffmpeg를 컴파일 중입니다. . 나는컴파일러 최적화가없는 FFMPEG 컴파일
컴파일이 잘 간다 그래서 추가 구성 --extra-CFLAGS = -Od "어떤 최적화없이 컴파일 할 필요가 있지만, 몇 군데는 this 같은있다 :.
최근 3 IFS는
ff_sbrdsp_init_arm과 같은 호출이 컴파일러에 의해 제거되지 않기 때문에 코드가 컴파일되지만 연결되지 않습니다. 물론 최적화로 컴파일 할 때 모든 것이 괜찮 으면 컴파일러에서 모든 if (0)을 제거합니다.
ffmpeg에서 비슷한 장소 왜 전처리 기의 #if 대신에 (0)이 사용 되는가 0
뒤에 숨겨진 트릭이 있습니까?
예, 죽은 코드는 제거하지만 다른 최적화는 수행하지 않는 최적화를 전환하는 방법 만 알고 있다면 ... BTW. 디버거에서 단계별로 디버깅해야합니다. –
@Kamil_H 자동으로 대입을 처리하는 것은 어려울 수 있지만 적어도 정규 표현식'if ([A-Z _] *) '를 사용하여 모든 사이트를 찾을 수 있습니다. 수정이 필요합니다 (대문자와 밑줄만으로 구성된 모든 'if'조건을 찾습니다). –
알았어, 조언 주셔서 감사하지만, 내 질문은 약간 다릅니다 :이 이유에 대한 어떤 이유가 있습니다. 그것은 누군가가 그것을 의도적으로 한 것 같습니다. –