【问题标题】:How to install and use NTL in cygwin如何在cygwin中安装和使用NTL
【发布时间】:2023-03-09 04:30:01
【问题描述】:

我目前使用的库需要安装。所以他们会生成 xx.a 文件,该文件可以包含在 cygwin 的代码中。但是,Windows 的 NTL 库只需要解压缩文件。所以我需要知道如何在 cygwin 命令行中使用它。我已经在代码中完成了#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 并一直在使用它。

【问题讨论】:

    标签: c++ cygwin shared-libraries ntl


    【解决方案1】:

    在 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 的编译库位置的路径。

    【讨论】:

    • 我已经做到了。我不断收到此错误:“致命错误:zz.h:没有这样的文件或目录。#include ^ 编译终止。”
    • 如果zz.h 的完整路径是/cygdrive/c/cygwin/home/Win7/WinNTL-9_2_0/include/NTL/zz.h,那么NTL 不应包含在gcc 参数中指定的路径中。我更新了答案。
    • 我已经把下面的命令行成功运行了,它也可以帮助其他人:g++ -I$home/win7/include Polynomial.cpp -L/cygdrive/c/cygwin/home /Win7/libpaillier -l:libpaillier.a -L$home/win7/lib -lntl -lgmpxx -lgmp -lm
    猜你喜欢
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2016-07-29
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多