如何在cygwin中安装和使用NTL

How to install and use NTL in cygwin

到目前为止我使用的库需要安装。所以他们生成 xx.a 文件,可以包含在 cygwin 的代码中。然而,windows 的 NTL 库只需要解压文件。所以我需要知道如何在 cygwin 命令行中使用它。我在代码中完成了#include。问题是在 NTL 的 include 目录中,所有文件都是“.h”。

我所做的是:

g++  -c  Polynomial.cpp -L/cygdrive/c/cygwin/home/Win7/libpaillier -  
l:libpaillier.a -L/cygdrive/c/cygwin/home/Win7/Cryptopp -l:libcryptopp.a   -
L/cygdrive/c/cygwin/home/Win7/WinNTL-9_2_0/include/NTL -lgmpxx -lgmp

但我得到以下错误:

fatal error: NTL/ZZ.h: No such file or directory
#include <NTL/ZZ.h>
                ^
compilation terminated.

如果有人能给我一个线索就太好了。 TBC:我已经安装了 GMP 并一直在使用它。

在 gcc 中 headers 位置的路径是用 -I 开关指定的。使用 -L 您可以定义编译库位置的路径(包含 .a.so 文件的目录)。

此外,如果 zz.h 的完整路径是 /cygdrive/c/cygwin/home/Win7/WinNTL-9_2_0/include/NTL/zz.h,则 NTL 不应包含在 gcc 参数中指定的路径中。

所以,你至少需要更换

-L/cygdrive/c/cygwin/home/Win7/WinNTL-9_2_0/include/NTL

-I/cygdrive/c/cygwin/home/Win7/WinNTL-9_2_0/include

也许还有其他库,并在需要的地方添加编译库位置的路径 -L