我想用cygwin中的嵌入arm gcc编译器编译一个SDK。这是一个基于makefile的SDK。我的目标是皮层m3设备。我的问题是,SDK有一个针对目标的自定义libc实现,当我使用arm编译器(arm-none-eabi-gcc)进行编译时,它看起来会获取gnu arm libc,而不是SDK libc。这导致编译错误。我肯定makefile是正确的(我从一台电脑上复制并粘贴了整个SDK)。我无法再访问该计算机来尝试验证/比较设置。我不知道如何防止arm gcc编译器寻找自己的libc实现,而是将其指向正确的实现。任何帮助是极大的赞赏。arm gcc默认编译它的libc
0
A
回答
0
也许有两种解决方案:
- 创建特定于工具的环境 - GNU工具链采用了一些环境变量的定义默认行为。对于自定义工具链,您需要设置所有必要的变量来覆盖系统默认值。
使用
-nostdlib
链接选项,并明确地将所需的库和C运行时启动代码,让你的链接器命令行可能包括以下内容:-nostdlib -L在/ usr/myarmtools/GCC/lib目录 - LC的crt0.o
注意-nostdlib
抑制的libc中的libstdC++和crt0.o中默认的链接,所以你必须向图书馆提供搜索路径(-L),或明确它们的完整路径和文件将它们链接名称并链接您的目标的C运行时目标代码。
我使用选项2的偏好,因为它可以在任何环境中工作。但是,如果您希望使用通用makefile来构建多个目标,则选项1可能会有用。
相关问题
- 1. ARM-GCC编译错误21
- 2. GCC认为在ARM
- 3. 关于arm-eabi-gcc和交叉编译
- 4. 为arm-gcc编译器安装库
- 5. 交叉编译模块与arm-eabi-gcc
- 6. ARM GCC编译错误(Windows 7)
- 7. 没有libc编译
- 8. arm-linux-gcc vs arm-elf-gcc
- 9. 使用非主libc编译(即eglibc,uClibc)
- 10. 默认的Python编译器
- 11. 如何在Linux上使用另一个libC进行编译? (gcc)
- 12. 使用Code Sourcery编译GCC
- 13. Clang 3.1 + libC++编译错误
- 14. 链接libC++编译提升
- 15. Java默认编译目录
- 16. cmake和默认编译器
- 17. 默认GCC架构
- 18. 编译ARM与buildroot-如何判断ARM GCC包含文件在哪里
- 19. 编译编译器错误编译GCC
- 20. 为64位arm设计选择gcc编译器
- 21. 如何使用arm-linux-gcc交叉编译gmock?
- 22. 运行arm-elf-gcc编译代码时出现seg fault
- 23. 交叉编译器arm-unknown-linux-gnueabi-gcc没有找到GLES库
- 24. 从Windows building.o开始交叉编译GCC ARM(Linux)Boost.o
- 25. arm gcc中的内联汇编
- 26. 编译Linux内核和uBoot时为什么使用arm-linux-gnueabi-gcc而不使用arm-none-eabi-gcc?
- 27. 交叉编译Perl的ARM
- 28. 交叉编译ARM的ActiveMQ
- 29. 为arm编译交叉编译e2fsprogs
- 30. 在Ubuntu上编译darwin的步骤gcc
也许你的SDK在某个地方设置了一个脚本,它将所有环境变量设置为与gcc交叉编译器一起使用。一些你必须使用'source setup environment'启动的东西。这将设置工具链参数,sysroot等... – LPs