為保證正確性,完全走了一遍流程
目錄
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文件全部加入項目。