lovekernel 发表于 2009-08-10 20:48

arm elf 编译问题

我试图自己调试一个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="$PATH:$prefix/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

harry_he 发表于 2009-08-13 11:23

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 "   # /${fsbuild_host}/toolchain/glibc_headers/glibc_1/copy
页: [1]
查看完整版本: arm elf 编译问题