NTL的使用,vs2019

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

1.下载源码并解压

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

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\include

问题:为什么不把.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 Studio\2019\Community\VC\Auxiliary\VS\lib\x86
路径下,不知道库搜索目录的还是在上面的这篇文章

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.调试运行

该lib是在调试模式下生成的,其是包含调试运行的一些额外的信息,比如某段编译后的代码对应的cpp文件中的哪一行,平时调试的时候单步运行就是依赖的这个信息确定的。此时把对应的cpp文件都包含进来就可以单步调试了,ctrl+左键单击也可以跳到对应的定义。
具体操作,右击源码,添加现有项,将.cpp文件全部加入项目。

9.这是调试模式下生成的库,包含额外冗余信息,运行速度慢,布置到生产环境,应该还需要调整为release模式再生成一遍NTL.lib

posted @ 2020-11-11 20:01  ecnu_lxz  阅读(1565)  评论(0编辑  收藏  举报