代码之家  ›  专栏  ›  技术社区  ›  user7475694

编译amiitool不可能(MinGW)

  •  0
  • user7475694  · 技术社区  · 7 年前

    我希望编译的amiitool:

    https://github.com/socram8888/amiitool

    但我做不到,我在作者的存款上看到,人们也有问题: https://github.com/socram8888/amiitool/issues/9

    所以我允许自己张贴在这里。

    我的配置:Windows 10,MinGW(添加我的路径系统)版本:GCC-6.3.0-1 6.3.0,Cmder

    我的主要目标是了解如何使用当前配置编译amiitool。 当我试图编译一个小小的hello world时,一切都很好。

    谢谢大家的帮助。

    我从头开始恢复一切:

    在我的例子中,有效的是这个版本的mingw32:

    https://sourceforge.net/projects/mingw-w64-dgn/?source=typ_redirect

    所以我突然提议,我可以把我的帖子变成一个小教程,帮助像我这样的人,谁开始! 感谢iBug提供的宝贵帮助,

    1) 克隆存储库amiitool:

    git clone https://github.com/socram8888/amiitool.git
    

    --&燃气轮机;在此阶段,mbedtls文件夹为空

    2) 克隆存储库mbedtls:

    git clone "https://github.com/ARMmbed/mbedtls"
    

    3) 更新模块:

    git submodule
    

    --&燃气轮机;在此阶段,文件夹mbedtls正常

    3) 像你一样,我使用cmd而不是Cmder

    set CC=gcc
    

    4) 编辑Makefile(根)文件

    PWD ?= "`pwd`" remplace for : PWD ?= .
    
    gitversion.h:
        echo #define GIT_COMMIT_ID 0x12345678 > $(PWD)/gitversion.h
        echo #define GIT_COMMIT_COUNT 888 >> $(PWD)/gitversion.h
    

    5) 汇编:

    mingw32-make PWD=%CD%
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   iBug    7 年前

    首先 ,请准备好,您将不断遇到一系列问题,因为该程序是为Unix系统设计的,所以要在Windows上编译它,还有很多事情要做。

    我使用MinGW( latest download from SourceForge )+Windows命令提示符(将MinGW添加到 %PATH% ). 首先,我在 amiitools 目录并选择“在此处打开命令提示符”。

    编译之前,请在工作目录中运行以下命令,确保子模块正确

    git submodule update --init --recursive
    

    那么,因为MinGW没有 cc.exe 捆绑(与Unix系统相反),您应该使用 gcc.exe . 修改Makefile或运行 set CC=gcc (我使用Windows命令提示符 cmd.exe ),或在运行时指定编译器 make (如下所示)。

    然后需要对Makefile进行一些更改。用实际字符串或随机内容替换所有反勾选的命令,如以下内容(每行之前的数字是行号):

     3 PWD ?= .
    52     echo #define GIT_COMMIT_ID 0x12345678 > $(PWD)/gitversion.h
    53     echo #define GIT_COMMIT_COUNT 888 >> $(PWD)/gitversion.h
    
    • 第3行的修改似乎没有必要,见下文。

    请注意,在第52行和第53行中,需要删除双引号,如下所示 echo in CMD不同于 回响 在Unix中。

    你完成了。现在运行 制作 把一切都整理好。你不应该再遇到麻烦了:

    mingw32-make CC=gcc PWD=%CD%
    

    祝你好运

    image


    根据要求,这是我的完整日志,包括我使用的工具的版本信息:

    D:\Desktop\amiitool>notepad Makefile
    
    D:\Desktop\amiitool>gcc --version
    gcc (MinGW.org GCC-6.3.0-1) 6.3.0
    Copyright (C) 2016 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    D:\Desktop\amiitool>mingw32-make --version
    GNU Make 3.82.90
    Built for i686-pc-mingw32
    Copyright (C) 1988-2012 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    D:\Desktop\amiitool>mingw32-make CC=gcc PWD=%CD%
    echo #define GIT_COMMIT_ID 0x12345678 > D:\Desktop\amiitool/gitversion.h
    echo #define GIT_COMMIT_COUNT 666 >> D:\Desktop\amiitool/gitversion.h
    "mingw32-make" lib -C D:\Desktop\amiitool/mbedtls CFLAGS="-DMBEDTLS_CONFIG_FILE='\"D:\Desktop\amiitool/configs/mbedtls.h\"' -Wall -pedantic -O2 -fsigned-char"
    mingw32-make[1]: Entering directory 'D:/Desktop/amiitool/mbedtls'
    mingw32-make[2]: Entering directory 'D:/Desktop/amiitool/mbedtls/library'
    "  CC    aes.c"
    "  CC    aesni.c"
    "  CC    arc4.c"
    "  CC    asn1parse.c"
    "  CC    asn1write.c"
    "  CC    base64.c"
    "  CC    bignum.c"
    "  CC    blowfish.c"
    "  CC    camellia.c"
    "  CC    ccm.c"
    "  CC    cipher.c"
    "  CC    cipher_wrap.c"
    "  CC    cmac.c"
    "  CC    ctr_drbg.c"
    "  CC    des.c"
    "  CC    dhm.c"
    "  CC    ecdh.c"
    "  CC    ecdsa.c"
    "  CC    ecjpake.c"
    "  CC    ecp.c"
    "  CC    ecp_curves.c"
    "  CC    entropy.c"
    "  CC    entropy_poll.c"
    "  CC    error.c"
    "  CC    gcm.c"
    "  CC    havege.c"
    "  CC    hmac_drbg.c"
    "  CC    md.c"
    "  CC    md2.c"
    "  CC    md4.c"
    "  CC    md5.c"
    "  CC    md_wrap.c"
    "  CC    memory_buffer_alloc.c"
    "  CC    oid.c"
    "  CC    padlock.c"
    "  CC    pem.c"
    "  CC    pk.c"
    "  CC    pk_wrap.c"
    "  CC    pkcs12.c"
    "  CC    pkcs5.c"
    "  CC    pkparse.c"
    "  CC    pkwrite.c"
    "  CC    platform.c"
    "  CC    ripemd160.c"
    "  CC    rsa.c"
    "  CC    sha1.c"
    "  CC    sha256.c"
    "  CC    sha512.c"
    "  CC    threading.c"
    "  CC    timing.c"
    "  CC    version.c"
    "  CC    version_features.c"
    "  CC    xtea.c"
    "  AR    libmbedcrypto.a"
    "  RL    libmbedcrypto.a"
    "  CC    certs.c"
    "  CC    pkcs11.c"
    "  CC    x509.c"
    "  CC    x509_create.c"
    "  CC    x509_crl.c"
    "  CC    x509_crt.c"
    "  CC    x509_csr.c"
    "  CC    x509write_crt.c"
    "  CC    x509write_csr.c"
    "  AR    libmbedx509.a"
    "  RL    libmbedx509.a"
    "  CC    debug.c"
    "  CC    net_sockets.c"
    "  CC    ssl_cache.c"
    "  CC    ssl_ciphersuites.c"
    "  CC    ssl_cli.c"
    "  CC    ssl_cookie.c"
    "  CC    ssl_srv.c"
    "  CC    ssl_ticket.c"
    "  CC    ssl_tls.c"
    "  AR    libmbedtls.a"
    "  RL    libmbedtls.a"
    mingw32-make[2]: Leaving directory 'D:/Desktop/amiitool/mbedtls/library'
    mingw32-make[1]: Leaving directory 'D:/Desktop/amiitool/mbedtls'
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char -c amiitool.c -o amiitool.o
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char -c keygen.c -o keygen.o
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char -c drbg.c -o drbg.o
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char -c util.c -o util.o
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char -c version.c -o version.o
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char -c amiibo.c -o amiibo.o
    gcc -I D:\Desktop\amiitool/include -I D:\Desktop\amiitool/mbedtls/include -Wall -pedantic -O2 -fsigned-char keygen.o drbg.o util.o version.o amiibo.o amiitool.o -o amiitool -L D:\Desktop\amiitool/mbedtls/library -l mbedcrypto
    
    D:\Desktop\amiitool>
    
        2
  •  0
  •   user3042599    4 年前

    快速(&A);使用MSYS2轻松构建Windows的说明:

    • 从安装MSYS2 https://www.msys2.org/
    • 更新MSYS2
      • pacman -Syu
      • 重新启动
      • pacman -Su
    • 安装所需的软件包:
      • pacman -S base-devel gcc git
    • 克隆阿米托醇存储库:
      • git clone https://github.com/socram8888/amiitool.git --recursive
    • 构建amiitool:
      • cd amiitool
      • make