小编boi*_*r96的帖子

STL自定义分配器来管理不同的内存空间

我想使用STL自定义分配器类的不同实例来管理不同的内存空间,然后能够为STL容器指定一个分配器实例,这样每个容器只从其分配的内存空间中提取.但我不明白我该怎么做.我看到如何将分配器类型传递给STL容器的模板参数,但我想要一些类似于将分配器实例传递到STL容器的构造函数中的东西.有没有办法在STL中这样做?

c++ memory-management stl

8
推荐指数
2
解决办法
4231
查看次数

将add_custom_command/_target添加到不同的目录中以进行交叉编译

在CMake中,我正在尝试构建一个项目,其中包含由不同工具链编译的多个不同处理器体系结构的库.对于每个体系结构,静态库都构建在多个子目录中,然后收集到根目录中的共享库中.到目前为止,我还没弄清楚这一点.

到目前为止我最接近的是使用add_custom_commandadd_custom_target在子目录中生成.a文件,然后尝试使用add_custom_commandadd_custom_target再次将它们收集到根目录中的.so文件中.但是如果我将.so依赖项指向自定义命令输出列表,则makefile会显示"No rule to make ...",因为自定义命令输出不会从子目录中导出.所以我尝试将.so依赖项指向子目录中的自定义目标列表,并且它抱怨它无法找到具有该名称的文件.

把它放在代码表格中,这是我在子目录中的内容:

add_custom_command(OUTPUT subout.a COMMAND ${MYAR} ...)
add_custom_target(subout_target DEPENDS subout.a)
Run Code Online (Sandbox Code Playgroud)

在根目录中,我试过这个:

add_custom_command(OUTPUT my.so COMMAND ${MYLD} ... DEPENDS sub/subout.a)
add_custom_target(dll ALL DEPENDS my.so)
Run Code Online (Sandbox Code Playgroud)

我得到"没有规则来制作目标'sub/subout.a','my.so'需要.停." 这是有道理的,因为add_custom_command目标不会从目录中导出.

我试过这个:

add_custom_command(OUTPUT my.so COMMAND ${MYLD} ... DEPENDS subout_target)
add_custom_target(dll ALL DEPENDS my.so)
Run Code Online (Sandbox Code Playgroud)

这实际上会导致生成sub/subout.a文件,但随后它就会死掉,说"没有规则可以使目标'subout_target'......"

我认为我真正想要的是能够模仿add_library多种不同架构的行为.但显然,CMake不希望我这样做...... :)

有任何想法吗?

cmake

7
推荐指数
1
解决办法
8646
查看次数

标签 统计

c++ ×1

cmake ×1

memory-management ×1

stl ×1