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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM