【发布时间】:2018-08-18 15:30:32
【问题描述】:
我为sh3eb-elf 目标构建了一个交叉编译器。现在我需要一个 libc 实现。但是,当我想构建newlib 时,configure 会失败。
运行配置:
../newlib-cygwin/configure --host=sh3eb-elf
失败了。快速浏览config.log:
configure:4435: sh3eb-elf-gcc conftest.c >&5
[...]/sh3eb-elf/sh3eb-elf/lib/gcc/sh3eb-elf/8.1.0/../../../../sh3eb-elf/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
configure:4439: $? = 1
显然,链接器没有找到 libc,这是我首先要在这里构建的。我一头雾水……configure的参数错了吗?
【问题讨论】:
-
我很确定我不需要
--target=,对吗? -
我在 Arch Linux 中使用预打包工具键入的每个
configure调用中成功完成了包含--target=sh3eb-elf的构建:binutils、引导 gcc、newlib 使用--target而不是--host,最后是完整的 gcc。没有测试执行是否有效,但它编译了一个简单的printf("%s\n", "Hello world!");程序。我觉得需要--target而不是--host确实很奇怪。出于好奇,我尝试在完整构建 GCC 之后使用--host,但它似乎除了创建我使用--prefix指定的目录之外没有做任何事情。 -
是的,同时我重置了我的设置并尝试了
--target...瞧。确实很奇怪。
标签: c linker static-libraries autoconf