到目前为止,我已使用的库需要安装。因此他们生成了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/