如何 运行 Microsoft 的 32 位 FourQ 库?
How to run the FourQ lib by Microsoft at 32-Bit?
我想出了如何 运行 FourQ 在 64 位,但现在我想 运行 通过 32 位架构。首先,可以在 [1] 中找到该库。
我正在 运行 从 "FourQ_x64_and_portable" 目录中提取内容。如果我按照自述文件中的建议尝试命令:
make CC=gcc ARCH=x86
它会打印错误
FourQ_x64_and_portable>make CC=gcc ARCH=x86
gcc -c -O3 -D _X86_ -D __LINUX__ ecc_tests.c
In file included from FourQ_internal.h:25:0,
from ecc_tests.c:15:
FourQ.h:137:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
In file included from ecc_tests.c:15:0:
FourQ_internal.h:39:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
make: *** [ecc_tests.o] Error 1
嗯,这并不奇怪,我正在使用 Windows 10 x64 和 32 位和 64 位的 MinGW。我写了一个用于在 x64 和 x86 之间切换的批处理文件,因此,这不是问题。
如果我根据 fourQ.h 给出的建议修改 makefile,并为 OS 插入一个输入类型 (OS==WIN? OS=WINDOWS : OS=LINUX) 和 运行 又一次,结果是我再次出错。
FourQ_x64_and_portable>make CC=gcc OS=WIN ARCH=x86
gcc -c -O3 -D _X86_ -D WIN ecc_tests.c
In file included from FourQ_internal.h:25:0,
from ecc_tests.c:15:
FourQ.h:39:6: error: #error -- "Unsupported OS"
#error -- "Unsupported OS"
^
FourQ.h:137:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
In file included from ecc_tests.c:15:0:
FourQ_internal.h:39:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
make: *** [ecc_tests.o] Error 1
嗯,这看起来像,WINDOWS 不受支持。我已经在虚拟盒子里安装了 Ubuntu 并尝试再次编译,但最后一次,它显示了同样的错误。有任何解决此问题的建议吗?
顺便说一句。关于 gcc 的一些信息:
>gcc -v
Target: mingw32
[...]
Thread model: win32
gcc version 5.3.0 (GCC)
因为我想 运行 这段代码(最终)在 ARM Cortex M4 上,所以我可以使用 "arm-none-eabi-gcc" 而不是 "gcc" 进行交叉编译。为此,我在该 makefile 中添加了一个例程。
[1] https://www.microsoft.com/en-us/research/project/fourqlib/
答案是添加"GENERIC=TRUE"。这意味着我必须输入:
"make CC=gcc ARCH=x86 GENERIC=TRUE"
现在我可以针对 ARM 架构进行编译了。
我想出了如何 运行 FourQ 在 64 位,但现在我想 运行 通过 32 位架构。首先,可以在 [1] 中找到该库。 我正在 运行 从 "FourQ_x64_and_portable" 目录中提取内容。如果我按照自述文件中的建议尝试命令:
make CC=gcc ARCH=x86
它会打印错误
FourQ_x64_and_portable>make CC=gcc ARCH=x86
gcc -c -O3 -D _X86_ -D __LINUX__ ecc_tests.c
In file included from FourQ_internal.h:25:0,
from ecc_tests.c:15:
FourQ.h:137:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
In file included from ecc_tests.c:15:0:
FourQ_internal.h:39:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
make: *** [ecc_tests.o] Error 1
嗯,这并不奇怪,我正在使用 Windows 10 x64 和 32 位和 64 位的 MinGW。我写了一个用于在 x64 和 x86 之间切换的批处理文件,因此,这不是问题。
如果我根据 fourQ.h 给出的建议修改 makefile,并为 OS 插入一个输入类型 (OS==WIN? OS=WINDOWS : OS=LINUX) 和 运行 又一次,结果是我再次出错。
FourQ_x64_and_portable>make CC=gcc OS=WIN ARCH=x86
gcc -c -O3 -D _X86_ -D WIN ecc_tests.c
In file included from FourQ_internal.h:25:0,
from ecc_tests.c:15:
FourQ.h:39:6: error: #error -- "Unsupported OS"
#error -- "Unsupported OS"
^
FourQ.h:137:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
In file included from ecc_tests.c:15:0:
FourQ_internal.h:39:6: error: #error -- "Unsupported configuration"
#error -- "Unsupported configuration"
^
make: *** [ecc_tests.o] Error 1
嗯,这看起来像,WINDOWS 不受支持。我已经在虚拟盒子里安装了 Ubuntu 并尝试再次编译,但最后一次,它显示了同样的错误。有任何解决此问题的建议吗?
顺便说一句。关于 gcc 的一些信息:
>gcc -v
Target: mingw32
[...]
Thread model: win32
gcc version 5.3.0 (GCC)
因为我想 运行 这段代码(最终)在 ARM Cortex M4 上,所以我可以使用 "arm-none-eabi-gcc" 而不是 "gcc" 进行交叉编译。为此,我在该 makefile 中添加了一个例程。
[1] https://www.microsoft.com/en-us/research/project/fourqlib/
答案是添加"GENERIC=TRUE"。这意味着我必须输入:
"make CC=gcc ARCH=x86 GENERIC=TRUE"
现在我可以针对 ARM 架构进行编译了。