Библиотеки, которые я использовал до сих пор, требуют установки. Поэтому они генерируют файл xx.a, который может быть включен в код в cygwin. Однако библиотека NTL для Windows требует только распаковать файл. Поэтому мне нужно знать, как использовать его в командной строке Cygwin. Я сделал #include в коде. Проблема в том, что в директории include в NTL все файлы «.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
где они нужны.