让我揪心的错误啊~Undefined symbol abort

上升期打工人 2014-02-25 12:12:38
开发环境keil4 目标平台nrf51882 项目原本没问题~
但是需要添加GOOGLE的protobuf协议,之后编制便有Undefined symbol abort (referred from mmbp_pb.o)的错误提示~
1.我mmbp_pb.c中没有调用过abort().在别的调用过的文件中注释掉也没有改变编译结果。
2.将USE MICRO LIB的勾去掉的话~错误改变为
Symbol __stdin multiply defined (by stdio_streams.o and retarget.o).
Symbol __stdout multiply defined (by stdio_streams.o and retarget.o).
我工程里面只有retarget.c,将里面的__stdin 和 __stdout注释掉之后,编译没问题,但是工程烧进去已经废掉了~

求相关经验人士指点!~

...全文
1921 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35372510 2016-07-23
  • 打赏
  • 举报
回复
我也是这样 运行的是以前学长做的 可是也出现这个错误..\OBJ\PICTURE.axf: Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and usart.o). 解决了的能教下我嘛?
cgh0817 2015-05-23
  • 打赏
  • 举报
回复
楼主后来怎么解决的? 我现在也遇到类似问题,也是在51822上,用keil5. 莫名其妙的就编译报错: .\_build\ble_app_uart.axf: Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and app_trace.o). .\_build\ble_app_uart.axf: Error: L6200E: Symbol __stdin multiply defined (by stdio_streams.o and app_trace.o). 不知道是原因,刚才百度发现勾上 USE MICRO LIB就能编译通过。但是,我另外一个早同系的工程,不用勾微库也可以过。 感觉就是莫名其妙,很纠结。
上升期打工人 2014-02-25
  • 打赏
  • 举报
回复
占沙发~求解!
上升期打工人 2014-02-25
  • 打赏
  • 举报
回复
引用 8 楼 inurlcn 的回复:
是不是你没有搜索汇编文件.s和.cpp
楼上搜索是什么意思? 我是在原来编译运行正常的程序基础上~添加了google 的protobuf协议之后才这样的~
inurlcn 2014-02-25
  • 打赏
  • 举报
回复
是不是你没有搜索汇编文件.s和.cpp
zhxianbin 2014-02-25
  • 打赏
  • 举报
回复
__stdin、__stdout 不能换个名字吗
上升期打工人 2014-02-25
  • 打赏
  • 举报
回复
引用 5 楼 zhxianbin 的回复:
USE MICRO LIB 选上, 找找 __stdin、__stdout 为什么多次定义了
提示stdio_streams.o retarget.o两个文件里重复定义~ stdio_streams不是我工程里的文件,不能搞定。 retarget.o 里面有我自己定义的~注释掉的话,程序编译成功,运行不起来了就。
zhxianbin 2014-02-25
  • 打赏
  • 举报
回复
USE MICRO LIB 选上, 找找 __stdin、__stdout 为什么多次定义了
上升期打工人 2014-02-25
  • 打赏
  • 举报
回复
引用 2 楼 zhxianbin 的回复:
#include <stdlib.h> /* abort, NULL */
这个包含了~
上升期打工人 2014-02-25
  • 打赏
  • 举报
回复
stdlib.h是包含的~
zhxianbin 2014-02-25
  • 打赏
  • 举报
回复
#include <stdlib.h> /* abort, NULL */
笔记本的风扇控制 ---------------------------------------- 09 November 2006. Summary of changes for version 20061109: 1) ACPI CA Core Subsystem: Optimized the Load ASL operator in the case where the source operand is an operation region. Simply map the operation region memory, instead of performing a bytewise read. (Region must be of type SystemMemory, see below.) Fixed the Load ASL operator for the case where the source operand is a region field. A buffer object is also allowed as the source operand. BZ 480 Fixed a problem where the Load ASL operator allowed the source operand to be an operation region of any type. It is now restricted to regions of type SystemMemory, as per the ACPI specification. BZ 481 Additional cleanup and optimizations for the new Table Manager code. AcpiEnable will now fail if all of the required ACPI tables are not loaded (FADT, FACS, DSDT). BZ 477 Added #pragma pack(8/4) to acobject.h to ensure that the structures in this header are always compiled as aligned. The ACPI_OPERAND_OBJECT has been manually optimized to be aligned and will not work if it is byte-packed. Example Code and Data Size: These are the sizes for the OS- independent acpica.lib produced by the Microsoft Visual C++ 6.0 32- bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Previous Release: Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total Debug Version: 155.4K Code, 63.1K Data, 218.5K Total Current Release: Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total Debug Version: 155.2K Code, 63.1K Data, 218.3K Total 2) iASL Compiler/Disassembler and Tools: Fixed a problem where the presence of the _OSI predefined control method within complex expressions could cause an internal compiler error. AcpiExec: Implemented full region support for multiple address spaces. SpaceId is now part of the REGION object. BZ 429 ---------------------------------------- 11 Oc

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧