首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Visual 2017中配置NTL库

如何在Visual 2017中配置NTL库
EN

Stack Overflow用户
提问于 2017-06-22 09:42:40
回答 1查看 1.1K关注 0票数 2

我刚刚安装了Visual 2017,我想使用NTL库。我遵循了这里描述的步骤(对于VS2013)。Compiling NTL library in Visual Studio 2013

正如预期的那样,它会编译(我希望有几个可以忽略不计的警告)。

然后,在相同的解决方案下,我将执行以下连续步骤:(在相同的解决方案下)

  1. 添加项目->新项目-> Visual C++ -> Win32控制台应用程序。
  2. 右键单击已创建的项目->集为StartUp项目
  3. 右键单击创建的项目-> Add -> Reference -> NTL
  4. 右键单击创建的项目->配置属性-> C/C++ ->通用->附加包含目录-> (NTL包含)
  5. 从“测试”文件夹中获取/复制一些文件(从NTL存储库下载)
  6. 删除#包括"stdafx.h“以下的所有内容
  7. 粘贴和建造

这些步骤应该适用于VS2013 & VS2015,不幸的是,当我构建时,我得到了4个与链接器相关的错误(LNK2019)。

它们都类似于下面的例子:

错误(?MatPrime_crt_helper_deleter@NTL@@YAXPAVMatPrime_crt_helper@1@@Z)未解析的外部符号"void __cdecl NTL::MatPrime_crt_helper_deleter(class NTL::MatPrime_crt_helper *)“函数中引用的LNK2019 :Staticvoid__cdecl NTL::MatPrime_crt_helper *) (?deleter@MatPrime_crt_helper_deleter )_policy@ZZ_pInfoT@NTL@@SAXPAVMatPrime_crt_helper@3@@Z) NTLtest <thePathToTheLib> (ZZ_p.obj) 1

你能告诉我怎么做吗?

我已经尝试构建了这个例子-- ZZ_pEXTest.cpp ->

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2017-07-12 14:42:07

首先,我假设您得到了与我相同的4个错误。我得到了你在问题中显示的那个,再加上三个。在所有情况下,它都涉及代码中实际存在的方法或函数的前向声明。

但是,声明中的类型是类,实现中的类型是结构。因此,函数签名是不一样的,链接器找不到实现。

因此,我简单地更新了参数类型的前向声明,使其为: structs。

在lip.h中,将_ntl_general_rem_one_struct更改为struct。在ZZ_p.h中,将MatPrime_crt_helper更改为struct

我相信这就是我所做的一切。

您不应该真的需要对代码进行更改。可能有一个编译器开关,或者它只在VS中失败。我不知道。我只知道它是由一个比我聪明得多的人写的,而且生命太短了;我已经做出了改变,我正在继续前进。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44695774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档