我在 Keil 5.25 中使用 ARM Compiler 5 (ARMCC)。我正在使用 c++11。
我正在使用 c++11 和 std::function 的自制类似物(因为 armcc 提供的 STL 中没有 std::function )。最近我注意到我的二进制文件包含几个看起来很奇怪的字符串,比如N8callback14DelegateLambdaIZN5tasks13BatteryTask_t6worker
等等。
我在链接器 .map 文件中查找了它们的地址,发现这些是我的一些 lambda 的“类型信息名称”。
我很确定我不需要这些名称,也不使用它们。但是即使使用 --no_rtti 和 --no_rtti_data 编译器仍然会生成它们,即使使用 --feedback 链接器也不会丢弃它们。
我怎样才能摆脱它们?它们往往会占用大量空间。