>백엔드 개발 >C++ >SDL2에서 해결되지 않은 외부 기호 __imp__fprintf 및 __imp____iob_func가 나타나는 이유는 무엇입니까?

SDL2에서 해결되지 않은 외부 기호 __imp__fprintf 및 __imp____iob_func가 나타나는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-28 15:50:15679검색

Why Am I Getting Unresolved External Symbols __imp__fprintf and __imp____iob_func with SDL2?

해결되지 않은 외부 기호: SDL2의 __imp__fprintf 및 __imp____iob_func

프로그래밍에서 해결되지 않은 외부 기호가 발생하는 것은 연결 오류로 나타나는 일반적인 문제입니다. SDL2에서 이러한 오류를 자주 발생시키는 두 가지 특정 기호는 __imp__fprintf 및 __imp____iob_func입니다.

__imp__fprintf 확인되지 않은 외부 기호는 형식화된 인쇄에 사용되는 fprintf가 DLL(동적 링크 라이브러리)에 있기 때문에 발생합니다. 컴파일러는 일반적으로 런타임에 이러한 라이브러리에 연결하지만 링커가 적절한 DLL을 찾을 수 없는 경우도 있습니다. 이는 시스템 경로에 DLL이 없거나 잘못된 버전이 연결된 경우에 발생할 수 있습니다.

반면에 __imp____iob_func 확인되지 않은 외부 기호는 C의 표준 입출력(I/O)과 관련이 있습니다. ) 기능. 특히 Visual Studio 2015에서는 stdin, stdout 및 stderr과 같은 I/O 함수 정의가 변경되었습니다. 이러한 함수는 이제 __acrt_iob_func를 사용하여 정의되지만, 이전 버전에서는 __iob_func를 사용하여 정의되었습니다. 이로 인해 이전 버전의 Visual Studio로 컴파일된 라이브러리나 코드를 사용할 때 연결 오류가 발생할 수 있습니다.

이 해결되지 않은 외부 기호 오류를 해결하려면 다음 단계를 수행할 수 있습니다.

  • __imp__fprintf용 msvcrt.dll과 같은 필수 DLL이 시스템 경로에 있는지 확인하세요.
  • 올바른 버전의 SDL2 라이브러리 및 DLL에 연결됩니다.
  • __imp____iob_func가 원인인 경우 코드에서 __iob_func를 직접 정의하여 {stdin,stdout,*stderr}가 포함된 배열을 반환합니다. .
  • 다른 stdio 함수의 오류를 해결하려면 다음을 추가하세요. Legacy_stdio_definitions.lib를 링커 옵션에 추가합니다.

이러한 단계를 따르면 Visual Studio 2015에서 SDL2로 작업할 때 __imp__fprintf 및 __imp____iob_func와 관련된 해결되지 않은 외부 기호 오류를 효과적으로 해결할 수 있습니다.

위 내용은 SDL2에서 해결되지 않은 외부 기호 __imp__fprintf 및 __imp____iob_func가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.