VS 2015에서 컴파일 된 정적 라이브러리를 VS 2012에서 사용할 수 있습니까? VS 2012의 C 컴파일러는 매우 오래된 버전입니다. 내가 만나는 가장 일반적인 문제는 변수 선언 위치입니다. 변수는 VS 2012에서 해당 범위의 시작 부분에 선언되어야합니다.Visual Studio 2015 및 2012
그런 호환성이 있다면 헤더 파일에서 컴파일 오류를 수정하고 라이브러리에서 함수를 호출해야합니다. 그게 맞습니까?
0
A
답변
1
일반적으로 정적 라이브러리는 다른 버전의 Visual Studio와 호환되지 않습니다.
비주얼 C++ 컴파일러 ABI
은 역사적으로 주요 컴파일러 릴리스간에 변경되었습니다. 특히 컨테이너 크기가 컴파일러 릴리즈 사이에서 많이 달라지는 STL 컨테이너 인 의 경우입니다. 다른 컴파일러 버전을 사용하여 컴파일 된 클라이언트 코드를 사용하려면 모듈 경계에서 C++ 인터페이스를 사용하지 않는 것이 좋습니다. C++ 대신 C 또는 COM 인터페이스를 사용하는 것이 좋습니다.이 인터페이스는 컴파일러 릴리스간에 안정적인 ABI 을 갖도록 설계되었습니다.
나는 특별히 VS2015 -> VS2012를 시도한 적이 없지만 다른 방법은 확실히 어떤 문제 (VS2012/VS2013 -> VS2015)가 있습니다. 그러나 VS2015에는 특정 문제를 완화하려고 시도하는 문서화되지 않은 라이브러리 (legacy_stdio_definitions.lib 및 legacy_stdio_wide_specifiers.lib)가 있지만 호환성을위한 포괄적 인 것은 아닙니다.
가장 좋은 솔루션은 사용하려는 Visual Studio 버전으로 정적 라이브러리를 컴파일하는 것입니다.
관련 문제
- 1. Visual Studio 2012 | 2015 들여 쓰기 버튼
- 2. Visual Studio 마이그레이션 2015
- 3. nupenGl 및 visual studio 2015
- 4. Visual Studio 2015
- 5. Visual Studio 2012 및 SQL Server 2012
- 6. Visual Studio 2015/C#
- 7. Visual Studio 2015
- 8. OpenCVSharp 및 Visual Studio 2012
- 9. Visual Studio 2012 및 Intellisense
- 10. Visual Studio 2012 및 IVsSingleFileGenerator
- 11. RhoMobile 및 Visual Studio 2012
- 12. IPP 및 Visual Studio 2012
- 13. 2012 년 (v110) 툴셋이 포함 된 Visual Studio 2015
- 14. Visual Studio 2012 호환성
- 15. Visual Studio 2012 Ultimate
- 16. Visual Studio 2012 - % (Link.OutputFile)
- 17. Visual Studio 2015 - 제거 언어
- 18. Visual Studio 2015 및 SQL Server
- 19. ASP.NET 5 및 Visual Studio 2015
- 20. Visual Studio 2015 Designer의 System.ArgumentException
- 21. Visual Studio 2012 RC
- 22. Visual Studio 2012, C#
- 23. Visual Studio 2012 서명
- 24. Visual Studio 2012 TFS
- 25. Visual studio 2012 - 디버깅
- 26. Visual Studio 2012 LocalDB
- 27. Visual Studio 2012 IntelliSense
- 28. Visual Studio 2012 오류
- 29. .NET (Visual Studio 2012)
- 30. visual studio 2012 gadgeteer