硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1104|回复: 11
收起左侧

[STM32CubeIDE] [求助]使用-fno-builtin-printf无效

[复制链接]

2

主题

6

回帖

12

积分

新手上路

积分
12
发表于 2022-6-2 19:59:09 | 显示全部楼层 |阅读模式
本帖最后由 tianxiao 于 2022-6-2 20:12 编辑

不想使用c库的printf系列函数,所以通过宏替换成自己编写的函数,但是debug发现,不生效,链接到的还是c库的printf。 image.png

百度了一下,在编译选项里加了-fno-builtin-printf -fno-builtin-sprintf,然而编译运行都正常,配置无效。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107144
QQ
发表于 2022-6-3 00:20:23 | 显示全部楼层
CubeIDE这个问题不太了解,看看坛友有清楚的不。
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2022-6-3 14:02:49 | 显示全部楼层
eric2013 发表于 2022-6-3 00:20
CubeIDE这个问题不太了解,看看坛友有清楚的不。

这个在visual GDB下也不起作用,不知道是不是arm gcc的问题
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107144
QQ
发表于 2022-6-5 10:37:27 | 显示全部楼层
以Embedded Studio为例是设置为None即可,它用的就是ARM GCC

image.png
回复

使用道具 举报

5

主题

196

回帖

211

积分

高级会员

积分
211
发表于 2022-6-5 15:04:09 | 显示全部楼层
这配置应该给linker加
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2022-6-5 15:48:48 | 显示全部楼层
eric2013 发表于 2022-6-5 10:37
以Embedded Studio为例是设置为None即可,它用的就是ARM GCC

未能找到类似选项
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2022-6-5 15:53:19 | 显示全部楼层
alexyzhov 发表于 2022-6-5 15:04
这配置应该给linker加

image.png 连assembler都加了,也不行
回复

使用道具 举报

5

主题

196

回帖

211

积分

高级会员

积分
211
发表于 2022-6-5 18:33:45 | 显示全部楼层
tianxiao 发表于 2022-6-5 15:53
连assembler都加了,也不行

看你工具链是怎么驱动的linker,如果是用gcc驱动ld,配置项前面还需要加-Wl,
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2022-6-5 23:58:47 | 显示全部楼层
alexyzhov 发表于 2022-6-5 18:33
看你工具链是怎么驱动的linker,如果是用gcc驱动ld,配置项前面还需要加-Wl,

image.png 放着别的指令加了-Wl,终于有点反应了,可惜看提示也不对 image.png


回复

使用道具 举报

3

主题

67

回帖

76

积分

初级会员

积分
76
发表于 2022-6-8 09:28:11 | 显示全部楼层
-fno-builtin-printf只是禁用了__builtin_printf,没有禁用printf。你可以用-Wl,--wrap=printf实现

aaa.jpg
回复

使用道具 举报

19

主题

373

回帖

430

积分

高级会员

积分
430
发表于 2022-6-19 16:39:38 | 显示全部楼层
貌似在 Do not use default libraries 打勾


图片.png
回复

使用道具 举报

3

主题

110

回帖

119

积分

初级会员

积分
119
发表于 2022-6-19 17:18:09 | 显示全部楼层
借楼问一个printf的问题,也是gcc下,mcu为gd32f105,printf重定向到了_write函数,然后printf没法打印float类型,也就是%f不行,但是%d %s都是OK的,在linker里面也加入了-u _printf_float,但是程序一运行就hardflaut了,rtos为ucosiii。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 10:51 , Processed in 0.196647 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表