首先
,请准备好,您将不断遇到一系列问题,因为该程序是为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
请注意,在第52行和第53行中,需要删除双引号,如下所示
echo
in CMD不同于
回响
在Unix中。
你完成了。现在运行
制作
把一切都整理好。你不应该再遇到麻烦了:
mingw32-make CC=gcc PWD=%CD%
祝你好运
根据要求,这是我的完整日志,包括我使用的工具的版本信息:
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>