2016-09-28 2 views
0

Windows 10 시스템에서 Windows 8.1을 대상으로하는 VC++ 프로젝트를 빌드 할 수 없습니다. 내가 얻는 오류는 "해결되지 않은 외부 기호 _sprintf"입니다. 대상 플랫폼을 Windows 10으로 변경하거나 legacy_stdio_definitions.lib을 추가 한 경우에만 프로젝트를 빌드 할 수 있습니다. 나는 싫어. 전에하지 않고이 프로젝트를 만들 수 있습니다. 그리고 공동 작업자는 자신의 컴퓨터에 동일한 코드를 작성할 수 있습니다. 문제는 내 컴퓨터에서 무엇을 놓치고 있는지입니다.VS2015의 Windows 8.1을 대상으로하는 C++ 프로젝트를 빌드 할 수 없습니다. 해결되지 않은 외부 기호 _sprintf

이미 Visual Studio를 최신 버전으로 업데이트하려고했습니다. 또한 프로그램 및 기능에서 Visual Studio를 복구하려고했습니다.

답변

0

_sprintf는 stdio.h에 정의되어 있습니다. 만약 당신이 #include <stdio.h> 그럼 당신은 그것을 사용할 수 있습니다. 이전 기능입니다. 이 기능과 그 사용법에 대한 자세한 내용은 here 을 참조하십시오. C++에는 here에 대한 함수 템플릿 버전이 있습니다. 함수는 CRT 라이브러리의 일부이지만 꽤 오랫동안 사용되었습니다. 연결을 확인하고 CRT에 좋아하는 것을 확인하십시오. 귀하의 경우에는 legacy_stdio_definitions.lib가됩니다. 빌드 타겟을 변경하기 전에 아마도 자동으로 프로젝트에 링크되어 있었고 빌드 타겟을 되돌릴 때의 설정으로 되돌아 가지 않았습니다. 귀하의 문제는 프로젝트 설정이 아닌 비주얼 스튜디오 또는 컴파일러 자체입니다.

+0

동일한 코드가 다른 컴퓨터에 작성됩니다. 동료는 대상 플랫폼을 변경하거나 legacy_stdio_definitions.lib를 추가하지 않고 자신의 컴퓨터에서이 도구를 빌드 할 수 있습니다. 그의 기계가 legacy_stdio_definitions.lib에 이미 링크되어 있기 때문에 – Lance

+0

일 것입니다. 이러한 오래된 문자열 함수가 많이 사용되지 않아서 왜 'legacy_stdio_definitions.lib'로 옮겨 졌습니까? – johnathon

+0

이제 프로젝트를 업데이트하지 않고 어떻게 내 컴퓨터에서이 작업을 수행 할 수 있습니까? – Lance

관련 문제