我正在为微控制器编写一个程序,并在其中使用该库来处理 Meschach 矩阵。该库未针对使用微控制器进行优化。特别是,有很多字符串文字要发送到标准输出。我不需要它,并且文字在可执行文件中占用了太多空间。它们可以被移除吗?在库的配置文件中,我没有找到允许您禁用标准输出的宏定义。
“删除”是指以下内容:
- 要么删除所有 printf 调用,以便文字变得未使用并且优化器将它们丢弃;
- 或将这样的线
char *a = "aaaa";
变成char *a = "";
- 应用一些可以删除所有行的编译器设置;
编译器:用于 ARM 7.50 的 IAR Embedded Workbench。
有什么选择?
sed -e '/printf/ d' YourProgram.c > Result.c
根据 TS 评论:
1)“仅适用于 Linux”——谁阻止你在 Windows 下安装 sed?!这是开源软件,而不是75 千卢布的Photoshop :-)
2)“也删除字符串文字,并同时处理多个文件。” - 这是一个小小的 bash 脚本:
sed的process.txt命令文件如下所示:
第一个命令删除包含“printf”的行,第二个命令“折叠”文本文字。第二个命令有一些问题......如果文本文字是:
那么这些都行不通。好吧,我不再那么麻烦了——在正则表达式的框架内,这些任务是无法解决的。