wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在没有运行时的情况下构建windows c库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试创建一个用于 Windows / MSVC的c库. 我的问题是,似乎为了正确链接,我需要分发一堆不同的版本,链接到不@R_377_11197@的MSVC的c运行时 – 单线程和多线程,调试和发布,不同的编译器版本,各种其他安全性和其他选择. 我喜欢分发两个,32位和64位. 我的想法是为我的所有STL类型使用不同的新运算符(比如,mynew)和自定义分配器.创建lib时,/ nodefaultlib.然后,
我正在尝试创建一个用于 Windows / MSVC的c库.

我的问题是,似乎为了正确链接,我需要分发一堆不同的版本,链接到不@R_377_11197@的MSVC的c运行时 – 单线程和多线程,调试和发布,不同的编译器版本,各种其他安全性和其他选择.

我喜欢分发两个,32位和64位.

我的想法是为我的所有STL类型使用不同的新运算符(比如,mynew)和自定义分配器.创建lib时,/ nodefaultlib.然后,当从父项目链接时,要求他们将mynew转换为new,并将我的stl分配器转换为标准的(或者他们选择的一个).我想我需要删除,以及其他一些功能.当然,我会提供一个示例的thunking实现与库,但这将有希望为每个人节省很多头痛.

这可能吗?有没有人试过这个?是否有关于Windows / MSVC上的库创建/分发的最佳实践?

解决方法

你想要静态链接作为一般答案.

关于克里斯回答的快速说明(不想去除助力因为它主要是好的,但是……):

不要链接到msvcrt.dll(无版本的);这是特定于操作系统的版本DLL,如果链接到它,您的应用程序可能无法在其他版本的Windows上运行.据我所知,你应该始终链接到msvcrt ##.dll. DDK可能包含一个lib,但除非你真的知道你在做什么,否则不要链接到它.

大佬总结

以上是大佬教程为你收集整理的在没有运行时的情况下构建windows c库?全部内容,希望文章能够帮你解决在没有运行时的情况下构建windows c库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。