gpt4 book ai didi

gcc - 构建 GCC 交叉编译器(从 "Linux"到 "Windows")

转载 作者:行者123 更新时间:2023-12-04 10:32:35 25 4
gpt4 key购买 nike

我想构建“gcc 交叉编译器”来编译“Linux”环境上的“c/c++”应用程序,但用于“Windows”目标。

到目前为止,我已经做到了:

  • 安装了“Prerequisites for GCC”页面上列出的构建 GCC 所需的工具和包。
  • 下载所需资源:
    gcc-core-4.4.1”、“gcc-g++-4.4.1”、“binutils-2.19.1”、“w32api-3.13-mingw32”、“mingwrt-3.16-mingw32
  • 创建此目录层次结构:
    "${HOME}/gcc/"- 用于最终的交叉编译器
    "${HOME}/src/"- 来源
    "${HOME}/src/build-binutils/i386-mingw32/"- 用于构建 binutils 到 "i386-mingw32"目标
    "${HOME}/src/build-gcc/i386-mingw32/"- 用于构建 gcc 到 "i386-mingw32"目标
  • 构建的 binutils 包:

    cd "${HOME}/src/build-binutils/i386-mingw32/"
    ../../binutils-2.19.1/configure --prefix="${HOME}/gcc"--target=i386-mingw32 --disable-nls
    制作
    进行安装
  • 将“w32api”和“mingwrt”头文件复制到安装目录:

    cp -R "${HOME}/src/w32api-3.13-mingw32/include""${HOME}/gcc/i386-mingw32"
    cp -R "${HOME}/src/mingwrt-3.16-mingw32/include""${HOME}/gcc/i386-mingw32"

  • 现在,当我尝试构建“c(仅)交叉编译器”时:
    cd "${HOME}/src/build-gcc/i386-mingw32/"
    ../../gcc-4.4.1/configure --prefix="${HOME}/gcc" --target=i386-mingw32 --enable-languages=c --with-headers="${HOME}/gcc/i386-mingw32/include" --disable-nls
    make<br>

    它正在构建大约 4 分钟的东西,然后给了我这些错误:
    ${HOME}/gcc/i386-mingw32/bin/ld: dllcrt2.o: No such file: No such file or directory
    collect2: ld returned 1 exit status
    make[2]: *** [libgcc_s.dll] Error 1
    make[2]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32/i386-mingw32/libgcc'
    make[1]: *** [all-target-libgcc] Error 2
    make[1]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32'
    make: *** [all] Error 2

    从那条错误消息中,我真的不知道现在该怎么办 :-((( .

    有人知道问题出在哪里吗?
    谢谢。

    最佳答案

    这实际上没问题:事情的发展,你需要

  • 构建 binutils
  • 安装 header
  • 构建部分 C 编译器:足以创建目标文件,但不足以链接
  • 构建 win32api 和 mingw 运行时(包括您丢失的 dllcrt2.o)
  • 构建一个完整的 C 编译器(以及其他前端,例如 C++、Fortran、Ada 等等,如果你想要的话)

  • 您已成功执行上述第 3 步;它无法构建 libgcc(这是一个 GCC 支持库),但这意味着 C 编译器核心是功能性的(尽管它无法链接,但它仍然可以创建有效的目标文件)。您可以通过查看 gcc/xgcc 来检查这一点。文件在您的 GCC 构建目录中。

    所以,你需要进入下一步,不要担心你当前的失败。

    (要实际安装部分 C 编译器,您应该使用 make 选项运行 -k,以使其发挥最佳效果,即使遇到错误。例如,使用 make -k install 。)

    关于gcc - 构建 GCC 交叉编译器(从 "Linux"到 "Windows"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474673/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com