arm elf 编译问题

发布于 2022-09-18 01:56:32 字数 2784 浏览 13 评论 0

我试图自己调试一个arm-elf-的编译器,但编译完成之后试着编译C语言程序的时候总是提示说:ld:crti.o没有这个文件。
原因我想不透,请指教。
编译脚本如下:

pwd=/root/src
prefix=/opt/arm-elf-0.1
COMMON_FLAG="--target=arm-elf --prefix=$prefix --enable-interwork --enable-multilib --with-float=soft"

binutils="binutils-2.19"
gcc="gcc-4.3.2"
newlib="newlib-1.16.0"

check_success()
{
    if [ $? -ne 0 ]
        then
            echo error-----------------------------------
            exit 66
    fi
}

build_tar()
{
    tar jxvf $binutils.tar.bz2
    check_success
    tar jxvf $gcc.tar.bz2
    check_success
    tar zxvf $newlib.tar.gz
    check_success
    tar jxvf $gdb.tar.bz2
    check_success
}

build_binutils()
{
    echo build binutils -----------------------------------------------
    cd $pwd
    cd $binutils
    ./configure $COMMON_FLAG
    check_success
    make all install   
    check_success
    export PATH="$PATHprefix/bin"
    check_success
}

build_gcc1()
{
    echo build gcc1 -----------------------------------------------
    cd $pwd
    cd $gcc
    ./configure $COMMON_FLAG --enable-languages="c,c++" --with-newlib --with-headers=../$newlib/newlib/libc/include
    check_success
    make all-gcc install-gcc
    check_success
}

build_newlib()
{
    echo build newlib -----------------------------------------------
    cd $pwd
    cd $newlib
    ./configure $COMMON_FLAG
    check_success
    make all install
    check_success
}

build_gcc2()
{
    echo build gcc2 -----------------------------------------------
    cd $pwd
    cd $gcc
    make all install
    check_success
}

build_tar
build_binutils
build_gcc1
build_newlib
#build_gcc2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小伙你站住 2022-09-25 01:56:32

make install_root=${fsbuild_install}/${fsbuild_target}/libc/./ install-bootstrap-headers=yes install-
在安装glibc-header的时候,除了运行"make install-headers ...",还要拷贝crt1.o crti.o crtn.o到libc/usr/lib目录下,还要编译生成libc.so,参考如下命令:
make csu/subdir_lib
cp csu/crt1.o csu/crti.o csu/crtn.o ${install}/${target}/libc/./usr/lib/./
popd
${install}/bin/${target}-gcc -o ${install}/${target}/libc/./usr/lib/.//libc.so -nostdlib -nostartfiles -shared -x c /dev/null

check_exit "# task [063/201]"     # /${fsbuild_host}/toolchain/glibc_headers/glibc_1/copy

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文