wandersky 发表于 2022-5-17 13:45

不使用microlib,使用AC6,编译出错

本帖最后由 wandersky 于 2022-5-17 13:50 编辑

不使用microlib, 程序中使用printf(), 一直没有成功,调试过程如下;
如果不定义_sys_open(),报如下错误:
test\test.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _sys_open was referenced
Not enough information to list load addresses in the image map.
Finished: 1 information, 0 warning and 1 error messages.
如果定义_sys_open(),报如下错误:
test\test.axf: Error: L6200E: Symbol _sys_open multiply defined (by sys_io.o and main.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
定不定义sys_open(),都不会编译成功。



故意相遇 发表于 2022-7-22 00:04

这不正常么,你用microlib就好了啊

风凉 发表于 2022-7-22 00:26

其实可以自己写printf的,这个ST是有例程的

捧一束彼岸花 发表于 2022-7-22 00:47

你可以看看网上,不使用microlib的话,怎么实现printf的

西洲 发表于 2022-7-22 01:09

我知道是可以重定义的,这个我见过

白马过平川 发表于 2022-7-22 01:31

你可以http://t.zoukankan.com/birdBull-p-15697213.html参考一下,这个链接,是可以的

温室雏菊 发表于 2022-7-22 01:53

. 我觉得不是AC6的事儿哈,可能就是你没重指向导致的

月亮一键变蓝 发表于 2022-7-22 02:16

你用microlib呗,这个勾选一下就解决这个问题了

在曼谷的春 发表于 2022-7-22 06:06

Printf属实很好用,但是你需要选择microlib才行,或者自己写一个printf的函数

我吃小朋友 发表于 2022-7-22 06:29

这个错误可能是你名字重复了,导致错误的

一只眠羊 发表于 2022-7-22 06:52

嗯,看你这个报错可能就是sys_open重定义导致了

SantaBunny 发表于 2023-3-1 12:43

不能定义到你选项已经设置的地址空间里面。

中国龙芯CDX 发表于 2023-3-1 19:40

跟Ac6有什么关系

bestwell 发表于 2023-6-8 07:17

microlib 不符合 ISO C 库标准。

claretttt 发表于 2023-6-8 13:37

如果不想使用Microlib,则可以选择使用标准C库。

burgessmaggie 发表于 2023-6-8 15:40

重定义printf后开启编译器的microlib即可。

wangdezhi 发表于 2023-6-13 23:24

标准C库包含了大量的函数和头文件,可以满足绝大部分的应用需求。

dspmana 发表于 2023-6-14 11:44

不支持某些 ISO 特性,并且其他特性具有的功能也较少。

hilahope 发表于 2023-6-14 16:17

用Keil编译程序时数据段过长怎么办?

eefas 发表于 2023-6-14 17:31

Microlib是一种C运行库,它具有很小的代码尺寸和内存占用量
页: [1] 2 3 4
查看完整版本: 不使用microlib,使用AC6,编译出错