到目前为止,我已使用的库需要安装。因此他们生成了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中,标题位置的路径是通过-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在需要的位置添加到已编译库位置的路径。

关于c++ - 如何在Cygwin中安装和使用NTL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30706651/

10-13 08:52