为保证正确性,完全走了一遍流程
目录
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也可以跳转到对应的类