当前位置:  开发笔记 > 编程语言 > 正文

在没有运行时的情况下构建windows c ++库?

如何解决《在没有运行时的情况下构建windowsc++库?》经验,为你挑选了1个好方法。

我正在尝试创建一个用于Windows/MSVC的c ++库.

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

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

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

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



1> Nick..:

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

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

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

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有