C语言开发新版本,与旧版本相比,编译静态库和动态库,如何改写更高效?
- 内容介绍
- 文章标签
- 相关推荐
本文共计518个文字,预计阅读时间需要3分钟。
关于VS潜藏的升级问题概述(Visual C++)查看官网的介绍:潜藏的升级问题概述(Visual C++)。主要问题:1. 如果使用 /GL(全程优化)进行编译,生成的对象文件只能使用生成它时所用的命令行参数。
关于vs潜在的升级问题概述 (Visual C++)查看官网的介绍:潜在的升级问题概述 (Visual C++)。主要问题:
1.如果使用 /GL(全程序优化)进行编译,则生成的对象文件只能使用生成它时所用的同一工具集进行链接。即若在编译静态库时开启了全程序优化,那么编译出的静态库不可移植。
2.在 Visual Studio 2013 及更低版本中,不能保证使用不同编译器工具集和运行时库版本生成的对象文件 (OBJ)、静态库 (LIB)、动态库 (DLL) 和可执行文件 (EXE) 之间的二进制兼容性。在 Visual Studio 2015 及更高版本中,使用两个版本之一的编译器编译的运行时库和应用程序是二进制兼容的。 这意味着,如果拥有使用 Visual Studio 2015 生成的第三方库,则无需对其进行重新编译即可通过使用 Visual Studio 2017 或 Visual Studio 2019 生成的应用程序使用该库。关于二进制兼容可以查看:Visual Studio 2015 和 Visual Studio 2019 之间的 C++ 二进制兼容性。
本文共计518个文字,预计阅读时间需要3分钟。
关于VS潜藏的升级问题概述(Visual C++)查看官网的介绍:潜藏的升级问题概述(Visual C++)。主要问题:1. 如果使用 /GL(全程优化)进行编译,生成的对象文件只能使用生成它时所用的命令行参数。
关于vs潜在的升级问题概述 (Visual C++)查看官网的介绍:潜在的升级问题概述 (Visual C++)。主要问题:
1.如果使用 /GL(全程序优化)进行编译,则生成的对象文件只能使用生成它时所用的同一工具集进行链接。即若在编译静态库时开启了全程序优化,那么编译出的静态库不可移植。
2.在 Visual Studio 2013 及更低版本中,不能保证使用不同编译器工具集和运行时库版本生成的对象文件 (OBJ)、静态库 (LIB)、动态库 (DLL) 和可执行文件 (EXE) 之间的二进制兼容性。在 Visual Studio 2015 及更高版本中,使用两个版本之一的编译器编译的运行时库和应用程序是二进制兼容的。 这意味着,如果拥有使用 Visual Studio 2015 生成的第三方库,则无需对其进行重新编译即可通过使用 Visual Studio 2017 或 Visual Studio 2019 生成的应用程序使用该库。关于二进制兼容可以查看:Visual Studio 2015 和 Visual Studio 2019 之间的 C++ 二进制兼容性。

