gpt4 book ai didi

c++ - 在 Visual Studio 2013 中编译静态库

转载 作者:行者123 更新时间:2023-11-28 02:27:14 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2013 开发 C++ 静态库 *.lib。我收到了使用 Visual Studio 2010 编译器编译库的请求,但是我没有在开发人员机器上安装它。

当编译动态库 *.dll 时,可以使用开关/MT 将 C 运行时打包到 dll 中。动态库因此变得更大。但是,当我使用/MT 开关时,静态库会变小(5MB -> 4.9MB),这与我的预期相反。

问题:1. 我可以在 Visual Studio 2013 中构建静态库,以便以后供 Visual Studio 2010 编译器使用吗?2./MT 开关是否正确?

最佳答案

静态库通常只与构建它们的工具集兼容。对于标准 C++ 库/STL 的任何使用尤其如此,这就是为什么较新版本的 VS 嵌入了 _MSC_VER 标记以用于任何使用 STL header 的情况,如果您尝试混合它们。

使用与使用它们的项目相同的 CRT 设置(/MT、/MD、/MTd、/MDd)构建静态库也很重要。

使用 C 的 DLL 或使用 CRT DLL 的 COM 导出实际上是唯一可以安全地与不同版本的编译器混合的“稳定”库。

否则,您应该为每个要支持的版本获取工具集,并构建所有需要的 .lib 版本。

关于c++ - 在 Visual Studio 2013 中编译静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30109984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com