我正在尝试创建一个用于Windows/MSVC的C++库。
我的问题是似乎需要分发很多不同版本的库,这些库链接到不同版本的 MSVC 的 C++ 运行库-单线程和多线程、调试和发布、不同的编译器版本、各种其他安全和其他选项。
我希望只需分发两个版本,32 位和 64 位。
我的想法是可能使用不同的 new 操作符(比如 mynew)和自定义分配器来创建所有的 STL 类型。在创建库时使用 /nodefaultlib。然后,在从父项目中链接时,要求将 mynew 转换为 new,将我的 stl 分配器转换为标准分配器(或他们选择的分配器)。我想我还需要做一些 delete 和其他函数。当然,我会提供一个库的示例实现来完成 thunking,这将帮助大家节省很多麻烦。
这是否可行?有人试过这个方法吗?在 Windows/MSVC 上创建/分发库的最佳做法是什么?
我的问题是似乎需要分发很多不同版本的库,这些库链接到不同版本的 MSVC 的 C++ 运行库-单线程和多线程、调试和发布、不同的编译器版本、各种其他安全和其他选项。
我希望只需分发两个版本,32 位和 64 位。
我的想法是可能使用不同的 new 操作符(比如 mynew)和自定义分配器来创建所有的 STL 类型。在创建库时使用 /nodefaultlib。然后,在从父项目中链接时,要求将 mynew 转换为 new,将我的 stl 分配器转换为标准分配器(或他们选择的分配器)。我想我还需要做一些 delete 和其他函数。当然,我会提供一个库的示例实现来完成 thunking,这将帮助大家节省很多麻烦。
这是否可行?有人试过这个方法吗?在 Windows/MSVC 上创建/分发库的最佳做法是什么?