我是一家ARM微观控制器的公司。 我在无动于衷的情况下建造了十字架,实际上,我的RTOS(ChibiOS)提供了简单的回忆。
我的所有代码都在C中书写,但我只使用C++与Eigen图书馆链接的一些部分除外(一个C++模版图书馆用于线阿尔盖布拉,它只是头盔)。
如果我与法国国家扫盲委员会共同汇编我的资料来源法(O2 - DNDEBUG)(只要我知道法国扫盲委员会的话,该法典就赢得了一定的需求。) 一切汇编了罚款和公司知识作品。
If I compile my source example code with -O0 I have the following:
Linking build/ch.elf
/home/noether/workspace/tool-chains/arm-none-eabi-4.6.2/lib/gcc/arm-none-eabi/4.6.2 /../../../../arm-none-eabi/lib/thumb/cortex-m4/libc.a(lib_a-abort.o): In function `abort :
/home/noether/workspace/tool-chains/summon-arm-toolchain/build/arm-none-eabi/thumb /cortex-m4/newlib/libc/stdlib/../../../../../../../gcc-4.6.2/newlib/libc/stdlib /abort.c:63: undefined reference to `_exit
/home/noether/workspace/tool-chains/arm-none-eabi-4.6.2/lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/thumb/cortex-m4/libc.a(lib_a-signalr.o): In function `_kill_r :
/home/noether/workspace/tool-chains/summon-arm-toolchain/build/arm-none-eabi/thumb/cortex-m4/newlib/libc/reent/../../../../../../../gcc-4.6.2/newlib/libc/reent/signalr.c:61: undefined reference to `_kill
/home/noether/workspace/tool-chains/arm-none-eabi-4.6.2/lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/thumb/cortex-m4/libc.a(lib_a-signalr.o): In function `_getpid_r :
/home/noether/workspace/tool-chains/summon-arm-toolchain/build/arm-none-eabi/thumb/cortex-m4/newlib/libc/reent/../../../../../../../gcc-4.6.2/newlib/libc/reent/signalr.c:96: undefined reference to `_getpid
collect2: ld returned 1 exit status
make: *** [build/ch.elf] Error 1
It does not matter if I put -DNDEBUG, I have the same output. I am using those flags as well, -fno-exceptions and fno-rtti. If I do not use/link the Eigen library (the only C++ stuff), g++ compiles the source fine even with -O0.
实际上,我执行了一个简单的技能——即植被和微量功能,该守则汇编了这些功能,但该法典从13KB到130KB,并坠毁(也许我没有写好这些功能)。
我想要的是,如果我使用——O0,就像用——O2做的那样,从我的法典中删除这一 st。
非常感谢。 让我知道,你们是否需要更多的信息。