2013-02-16 2 views
0

명목상는 FFmpeg 문제 swscale-2.dll 찾을 수 없습니다하지만 윈도우 7을 실행하는 표준 Windows 라이브러리 & 버전의 VS오류 : 서수 139

에 문제가 될 수 VS2010; 내 프로그램은 ffmpeg 라이브러리와 dll을 사용하므로 ffmpeg 라이브러리를 ffmpeg-1.1.1로 업그레이드하면 라이브러리 용으로 32 dev, DLL 용으로 win32-shared가됩니다.

디버그 모드에서 내 프로그램을 실행하면 정상적으로 실행됩니다. 해제 모드로 변경하고 모두 다시 컴파일하고 실행하려고했습니다. 즉시 오류 메시지가 표시됩니다. 서수 139가 swscale-2.dll에있을 수 없습니다.

둘 다 동일한 DLL을 사용하면 [디버그] 폴더에서 [릴리스] 폴더로 복사됩니다. 두 번] 디버그 모드에서 실행했을 때.

실마리가 있습니까? 이 하나가 나를 곤란하게 만든다.


그래서 디버그와 릴리스 사이의 속성 페이지를 비교하고 있습니다.

  • 모두 다 theaded 디버그 세트 (C++/코드 geneeration)
  • 릴리스 모드가 예/OPT로 설정 라이너 최적화 참조가 있습니다 REF 디버그는 아무 상관이없는 반면,

는 ==> NO로 설정하고 서수 (39)가 발견되지 재 오류 메시지를하지 않았다.

답변

0

잘못된 파일 사용과 다른 점은 거의 없습니다. 당신이 그들에게 자신을 빌드하는 경우, 다음 사항을 확인합니다

  • 가 올바른 DLL 및 FFmpeg에 의해 생성 된 LIB 파일이
  • 응용 프로그램이 올바른 DLL을, 예를 들어,로드 구축 사용 타사 소프트웨어가 설치 한 \ Windows \ system32에있는 파일이 아닙니다.

불일치를 식별하고 사용하려는 swscale.dll에 실제로 해당 기능이 있는지 여부를 확인하기 위해 종속성 워커를 사용할 수도 있습니다.

+0

나는 Debug와 Release 버전이 같은 lib와 같은 dll을 사용한다고 설명했다. 그래서 다른 것이 었습니다. – JPM

0

다른 lib와 dll의 제안은 잘못되었습니다. 근본적으로 ffmpeg가 구조와 같은 일부 Linux를 사용하고 어려움이있는 창만을 위해 컴파일 될 수 있기 때문에 라이브러리를 다시 컴파일하라는 제안은 잘못되었습니다. 그러므로 lib와 dll을 사용하십시오.

여기는 올바른 방법으로 만 찾았습니다. 삭제하지 마십시오. "서재 xxx는 발견 할 수 없습니다. yyyy."라는 버그가있는 사람을위한 정답입니다. dll "

그래서 디버그와 릴리스 사이의 속성 페이지를 비교하고 있습니다.

모두 멀티 페드 드 디버그 세트 (C++/코드 생성) 릴리스 모드에는 라이너 최적화 참조가 예/OPT : REF로 설정되어 있지만 디버그에는 아무 것도 없습니다. ==> NO로 설정하고 서수 39을 찾을 수 없다는 오류 메시지를받지 못했습니다.

0

Windows 용으로 컴파일 된 ffmpeg에서이 문제가 발생했습니다. 그것은 항상 dll/lib 불일치였습니다. 심지어 내 주요 exe 올바른 ffmpeg libs, 일부 DLL 또는 내 프로젝트의 lib 디렉토리에 연결된 새 컴파일 된 ffmpeg libs 사용하지 못했습니다. 그래서 디버그 의존성을 컴파일 된 것이 아니라 올바르게 컴파일했을 것입니다.