NTL的使用,vs2019

为保证正确性,完全走了一遍流程

1.下载源码并解压

2.将includeNTL文件夹放入搜索路径,使.h文件可以被找到

C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryVSinclude

问题:为什么不把.h直接放include下,把NTL文件夹脱了行不行

这是为了方便,源码里的都是#include <NTL/***>
脱去文件夹的话都需要修改

不知道默认搜索路径的参考这篇文章

当然可以附加一个新的搜索路径,只要能被搜到,都ok

3.接下来就是处理源文件.cpp文件

1.新建静态库项目,项目下自动生成的.h.cpp文件都删了

2.将src下所有的.cpp源文件添加进项目

右击源文件,添加,现有项,找到后全选即可

3.右击解决方案,最下面属性,或者快捷键alt+enter


修改SDL检查为否

4.继续修改属性


修改为不使用预编译头

5.生成即可

4.到刚才项目下的debug下找到.lib文件,加入到库文件的搜索目录中

我把NTL.lib放在了
C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryVSlibx86
路径下,不知道库搜索目录的还是在上面的这篇文章

5.接下来开始测试,新建一个控制台项目

修改项目属性,去掉SDL检查,如果还出错就检查下预编译头

6.编译器链接刚刚生成的静态库

方式1.#pragma comment(lib,"生成的静态库名称.lib")

方式2.alt+enter调出属性


填入名称即可,不用加路径前缀,因为已经在默认搜索路径中

7.测试代码,成功

#include <iostream>
#include <NTL/ZZ.h>
using namespace std;
using namespace NTL;
#pragma comment(lib,"NTL.lib")
int main()
{
	ZZ a, b, c;
	cin >> a >> b;
	c = a * b;
	cout << c<<endl;
	system("pause>nul");//无提示暂停
	return 0;
}

8.方便性

因为是链接静态库运行的,所以单步调试找不到.cpp下的源码,自己查看源码的时候也不方便,搜索不到,ctrl+左键单击也跳不到对应的类
建议,右击源码,添加现有项,将.cpp文件全部加入项目再调试,实测可以单步调试进入.cpp也可以跳转到对应的类

9.这是调试模式下生成的库,要是直接加入项目运行的话,应该还需要调整为release模式再生成一遍NTL.lib

原文地址:https://www.cnblogs.com/lxzbky/p/13960640.html