Boost.Container`dlmalloc`和`jemalloc`
我在我的项目中引入了Boost.Container,它使用Boost.Container`dlmalloc`和`jemalloc`,boost,jemalloc,boost-container,Boost,Jemalloc,Boost Container,我在我的项目中引入了Boost.Container,它使用jemalloc作为默认分配器,看起来像Boots。Container使用自定义分配器,即dlmalloc,当然,在链接时,由于在对象文件中引入了两个“XXXalloc”,我在“多定义”链接错误上失败。关闭“jemalloc”不是一个选项,但我无法找到是否可以关闭dlmalloc用法。你知道如何解决这个问题吗?实际上,Boost容器只有99%的头 文档将DLMalloc扩展列为一个扩展: 这意味着您显然选择了扩展分配器。如果这不是你想要的
jemalloc
作为默认分配器,看起来像Boots。Container使用自定义分配器,即dlmalloc
,当然,在链接时,由于在对象文件中引入了两个“XXXalloc”,我在“多定义”链接错误上失败。关闭“jemalloc”不是一个选项,但我无法找到是否可以关闭dlmalloc
用法。你知道如何解决这个问题吗?实际上,Boost容器只有99%的头
文档将DLMalloc扩展列为一个扩展:
这意味着您显然选择了扩展分配器。如果这不是你想要的,你知道该删除什么
一个很好的提示是,当您不需要链接Boost容器时,因为对导出的符号的快速检查并没有显示任何我能识别的东西,除了分配器的东西
实际上,Boost容器只有99%的头 文档将DLMalloc扩展列为一个扩展: 这意味着您显然选择了扩展分配器。如果这不是你想要的,你知道该删除什么 一个很好的提示是,当您不需要链接Boost容器时,因为对导出的符号的快速检查并没有显示任何我能识别的东西,除了分配器的东西
事实上,我没有选择加入,这感觉就像默认情况下它被使用。仍然不确定,构建需要花费很长时间,但感觉它与
USE\u-DL\u-PREFIX
defineOk有关,看起来像是定义USE\u-DL\u-PREFIX
成功了。我说得对吗,您的默认构建(显然)是默认定义的?您是使用bjam
构建的吗?到目前为止,我从未链接过库,我只是检查了使用这些扩展分配器示例时是否必须链接。那是你的选择!(但是如果使用_DL_PREFIX
可以解决您的问题,那么一定要发布答案。)啊哈!找到它时,项目中使用了单调的缓冲区资源,因此,在这种情况下,必须构建并链接库。我想当Boost.Container不作为“headers only”库使用时,这是非常罕见的情况。我不想搞乱它,检查是否可以从构建中排除分配器,我只会坚持定义。事实上,我没有选择加入,这感觉就像默认情况下使用它一样。仍然不确定,构建需要花费很长时间,但感觉它与USE\u-DL\u-PREFIX
defineOk有关,看起来像是定义USE\u-DL\u-PREFIX
成功了。我说得对吗,您的默认构建(显然)是默认定义的?您是使用bjam
构建的吗?到目前为止,我从未链接过库,我只是检查了使用这些扩展分配器示例时是否必须链接。那是你的选择!(但是如果使用_DL_PREFIX
可以解决您的问题,那么一定要发布答案。)啊哈!找到它时,项目中使用了单调的缓冲区资源,因此,在这种情况下,必须构建并链接库。我想当Boost.Container不作为“headers only”库使用时,这是非常罕见的情况。不想搞乱它,检查是否可以从构建中排除分配器,我将坚持使用define。