交叉编译错误“ arm-none-eabi-g ++找不到条目符号”

如何解决交叉编译错误“ arm-none-eabi-g ++找不到条目符号”

您下载了错误的工具链。

arm-linux-gnueabi-g++是使用建造的arm-none-eabi,用于裸机程序。它不包含 libc, 即该工具链中不存在标准库(glibc或eglibc)。

因此,您需要下载arm-none-linux-gnueabi工具链(即arm-2013.05-24-arm-none-linux- gnueabi-i686-pc-linux-gnu.tar.bz2不是arm-2013.11-24-arm-none-eabi-i686-pc- linux-gnu.tar.bz2)。

要验证以上内容,请输入:

cd /home/kang/Utils/arm-2013.05/arm-none-eabi

在这里,您只会找到bin include lib share,而没有libc目录。

下载arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2; 在这里您会找到一个文件夹arm-2013.05/arm-none-linux-gnueabi/libc

您还可以通过以下方式进行验证:

arm-linux-eabi-g++ -print-sysroot and 
arm-none-linux-gnueabi-g++ -print-sysroot

解决方法

我有关于交叉编译的问题。

#include <stdio.h>

int main()
{
    printf("hello\n");
    return 0;
}

这是我使用的一个简单的hello world代码。

我正在使用从导师图形下载的arm-none-eabi-g ++。这是错误。我不知道会错过什么lib。

/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 00008018
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0x10): undefined reference to `_exit'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0x1c): undefined reference to `_kill'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x44): undefined reference to `_getpid'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0x18): undefined reference to `_sbrk'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text+0x20): undefined reference to `_write'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text+0x18): undefined reference to `_close'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text+0x1c): undefined reference to `_fstat'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text+0x18): undefined reference to `_isatty'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text+0x20): undefined reference to `_lseek'
/home/kang/Utils/arm-2013.05/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text+0x20): undefined reference to `_read'
collect2: error: ld returned 1 exit status

这是编译器版本。

$ arm-linux-gnueabi-g ++ -v

使用内置规格。COLLECT_GCC = / home / kang / Utils / arm-2013.05 / bin / arm-none-
eabi-g COLLECT_LTO_WRAPPER = / home / kang / Utils / arm-2013.05 / bin
/../ libexec / gcc / arm-none-eabi / 4.7.3 / lto-wrapper目标:arm-none-
eabi配置为:/scratch/jbrown/2013.05-arm-eabi-
release/src/gcc-4.7-2013.05/configure –build = i686-pc-linux-gnu –host =
i686-pc-linux-gnu –target = arm-none-eabi –enable-threads –disable-
libmudflap –disable-libssp –disable-libstdcxx-pch –enable-extra-sgxxlite-
multilibs –with-gnu-as –with-gnu-ld –with-specs =’%{保存温度:-fverbose-asm}
-D__CS_SOURCERYGXX_MAJ = 2013 -D__CS_SOURCERYGXX_MIN = 5
-D__CS_SOURCERYGXX_REV __ = 23%{O2:% {!fno-remove-local-statics:-fremove-
local-statics}}%{O *:%{O | O0 | O1 | O2 | Os:;:%{!fno-remove-local-
statics:-fremove -local-statics}}}’–enable-languages =
c,https://sourcery.mentor.com/GNUToolchain/--disable-
nls –prefix = / opt / codesourcery –with-headers =是–with-sysroot = / opt
/ codesourcery / arm-none-eabi –with-build-sysroot = / scratch / jbrown /
2013.05 -arm-eabi-release / install / arm-none-eabi –with-gmp = / scratch /
jbrown / 2013.05-arm-eabi-release / obj / pkg-2013.05-23-arm-none-eabi /
arm-2013.05 -23-arm-none-eabi.extras / host-libs-i686-pc-linux-gnu / usr
–with-mpfr = / scratch / jbrown / 2013.05-arm-eabi-release / obj /
pkg-2013.05-23 -arm-none-eabi / arm-2013.05-23-arm-none-eabi.extras / host-
libs-i686-pc-linux-gnu / usr –with-mpc = / scratch / jbrown / 2013.05-arm-
eabi -release / obj / pkg-2013.05-23-arm-none-eabi / arm-2013.05-23-arm-
none-eabi.extras / host-libs-i686-pc-linux-gnu / usr –with-ppl =
/scratch/jbrown/2013.05-arm-eabi-release/obj/pkg-2013.05-23-arm-none-
eabi/arm-2013.05-23-arm-none-eabi.extras/host-libs-i686-pc-linux -gnu / usr
–with-host-libstdcxx =’-static-libgcc -Wl,-Bstatic,-lstdc
,-Bdynamic -lm’
–with-cloog = / scratch / jbrown / 2013.05-arm-eabi-release / obj /
pkg-2013.05-23-arm-none-eabi /arm-2013.05-23-arm-none-eabi.extras/host-
libs-i686-pc-linux-gnu/usr –with-libelf = / scratch / jbrown / 2013.05-arm-
eabi-release / obj / pkg -2013.05-23-arm-none-eabi / arm-2013.05-23-arm-
none-eabi.extras / host-libs-i686-pc-linux-gnu / usr –disable-libgomp
–disable-libitm-启用中毒系统目录–with-build-time-tools = / scratch / jbrown /
2013.05-arm-eabi-release / install / arm-none-eabi / bin –with-build-time-
tools = / scratch / jbrown / 2013.05-arm-eabi-release / install / arm-none-
eabi / bin线程模型:单个gcc版本4.7.3(Sourcery CodeBench Lite 2013.05-23)Extras /
host-libs-i686-pc-linux-gnu / usr –with-libelf = / scratch / jbrown /
2013.05-arm-eabi-release / obj / pkg-2013.05-23-arm-none-eabi / arm-
2013.05-23-arm-none-eabi.extras / host-libs-i686-pc-linux-gnu / usr
–disable-libgomp –disable-libitm –enable-poison-system-directories
–with-build-时间工具= / scratch / jbrown / 2013.05-arm-eabi-release / install /
arm-none-eabi / bin –with-build-time-tools = / scratch / jbrown /
2013.05-arm-eabi-release / install / arm-none-eabi /
bin线程模型:单个gcc版本4.7.3(Sourcery CodeBench Lite 2013.05-23)Extras / host-
libs-i686-pc-linux-gnu / usr –with-libelf = / scratch / jbrown /
2013.05-arm-eabi-release / obj / pkg-2013.05-23-arm-none-eabi / arm-
2013.05-23-arm-none-eabi.extras / host-libs-i686-pc-linux-gnu / usr
–disable-libgomp –disable-libitm –enable-poison-system-directories
–with-build-时间工具= / scratch / jbrown / 2013.05-arm-eabi-release / install /
arm-none-eabi / bin –with-build-time-tools = / scratch / jbrown /
2013.05-arm-eabi-release / install / arm-none-eabi /
bin线程模型:单个gcc版本4.7.3(Sourcery CodeBench Lite 2013.05-23)05-arm-eabi-release
/ install / arm-none-eabi / bin –with-build-time-tools = / scratch / jbrown
/ 2013.05-arm-eabi-release / install / arm / none-eabi /
bin线程型号:单一gcc版本4.7.3(Sourcery CodeBench Lite 2013.05-23)05-arm-eabi-release
/ install / arm-none-eabi / bin –with-build-time-tools = / scratch / jbrown
/ 2013.05-arm-eabi-release / install / arm / none-eabi /
bin线程型号:单一gcc版本4.7.3(Sourcery CodeBench Lite 2013.05-23)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?