不可能编译 amiitool (MinGW)
compilation amiitool impossible (MinGW)
我希望编译amiitool:
https://github.com/socram8888/amiitool
但是我做不到,我在作者的存款上看到人们也遇到了问题:
https://github.com/socram8888/amiitool/issues/9
所以我允许自己post在这里编辑。
我的配置:Windows10,MinGW(添加我的路径系统)version:GCC-6.3.0-1 6.3.0,Cmder
我的主要目标是了解如何使用我当前的配置编译 amiitool。
有关信息,当我尝试编译一个小的 hello world 时一切正常。
感谢大家的帮助。
我从头开始恢复一切:
在我的例子中,这个版本的 mingw32 有效:
https://sourceforge.net/projects/mingw-w64-dgn/?source=typ_redirect
所以我突然提议,我可以把我的post变成一个小教程来帮助像我一样的人,谁开始!
感谢 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%
首先,请做好准备,你会运行宁陷入一系列问题,因为该程序是为Unix系统设计的,所以有很多在 Windows.
上编译之前要做的事情
我使用 MinGW (latest download from SourceForge) + Windows 命令提示符(将 MinGW 添加到 %PATH%
)。首先,我在 amiitools
目录中 right-clicked 并选择 "Open Command Prompt here".
在编译之前,通过运行在工作目录
中执行以下命令确保子模块正确
git submodule update --init --recursive
然后,由于 MinGW 没有捆绑 cc.exe
(与 Unix 系统相反),您应该使用 gcc.exe
。要么修改Makefile,要么运行 set CC=gcc
(我用Windows Command Prompt cmd.exe
),或者在运行ning 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 行,您需要删除双引号,因为 CMD 中的 echo
与 Unix 中的 echo
不同。
大功告成。现在 运行 make
编译所有内容。你不应该再运行惹麻烦了:
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>
Windows 使用 MSYS2 的快速简单构建说明:
- 从 https://www.msys2.org/
安装 MSYS2
- 更新 MSYS2
pacman -Syu
- 重启
pacman -Su
- 安装所需的软件包:
pacman -S base-devel gcc git
- 克隆 amiitool 存储库:
git clone https://github.com/socram8888/amiitool.git --recursive
- 构建 amiitool:
cd amiitool
make
我希望编译amiitool:
https://github.com/socram8888/amiitool
但是我做不到,我在作者的存款上看到人们也遇到了问题: https://github.com/socram8888/amiitool/issues/9
所以我允许自己post在这里编辑。
我的配置:Windows10,MinGW(添加我的路径系统)version:GCC-6.3.0-1 6.3.0,Cmder
我的主要目标是了解如何使用我当前的配置编译 amiitool。 有关信息,当我尝试编译一个小的 hello world 时一切正常。
感谢大家的帮助。
我从头开始恢复一切:
在我的例子中,这个版本的 mingw32 有效:
https://sourceforge.net/projects/mingw-w64-dgn/?source=typ_redirect
所以我突然提议,我可以把我的post变成一个小教程来帮助像我一样的人,谁开始! 感谢 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%
首先,请做好准备,你会运行宁陷入一系列问题,因为该程序是为Unix系统设计的,所以有很多在 Windows.
上编译之前要做的事情我使用 MinGW (latest download from SourceForge) + Windows 命令提示符(将 MinGW 添加到 %PATH%
)。首先,我在 amiitools
目录中 right-clicked 并选择 "Open Command Prompt here".
在编译之前,通过运行在工作目录
中执行以下命令确保子模块正确git submodule update --init --recursive
然后,由于 MinGW 没有捆绑 cc.exe
(与 Unix 系统相反),您应该使用 gcc.exe
。要么修改Makefile,要么运行 set CC=gcc
(我用Windows Command Prompt cmd.exe
),或者在运行ning 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 行,您需要删除双引号,因为 CMD 中的 echo
与 Unix 中的 echo
不同。
大功告成。现在 运行 make
编译所有内容。你不应该再运行惹麻烦了:
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>
Windows 使用 MSYS2 的快速简单构建说明:
- 从 https://www.msys2.org/ 安装 MSYS2
- 更新 MSYS2
pacman -Syu
- 重启
pacman -Su
- 安装所需的软件包:
pacman -S base-devel gcc git
- 克隆 amiitool 存储库:
git clone https://github.com/socram8888/amiitool.git --recursive
- 构建 amiitool:
cd amiitool
make