2014-07-03 94 views
0

我正準備在debian系統上構建crypto ++庫,儘管debian存儲庫通過apt-get提供它們我想從源代碼執行它以確保編譯的庫是最新的,並且只建立一些選項。在構建庫之前選擇選項

默認的makefile被配置爲構建靜態庫,發佈構建,並且我想爲我的需要修改makefile並在其中添加一些其他的東西。

基本上我會使用這些庫僅用於學習,沒有任何類型的發佈程序,所以我的問題是我是否需要發佈構建或調試進行學習,我也不確定是否更好地構建共享或靜態學習目的的圖書館?

我想這個問題聽起來很有趣,但我不確定爲什麼我需要調試庫來調試簡單的程序?或者自行調試庫?

+0

使用調試時,您將獲得編譯器提供的有關錯誤的更多信息。 –

+0

不錯,共享庫的學習目的是什麼? – codekiddy

+0

我認爲共享是更好的發佈,因爲他們共享代碼之間的程序使用它們,靜態只是copypasta整個lib到您的exe。開發使用靜態更容易,因爲你只需要exe(更大但不指向各種共享庫) –

回答

1

調試和發佈lib之間的區別在於,調試通常會有更多的內部檢查來確保您正確使用該庫,相對應的是該庫也更重且更慢。這就是爲什麼使用發行版lib完成發佈版本的原因。

靜態鏈接(複製):一個大的exe文件,更加舒適的開發。你將你使用的圖書館的部分移動到你的二進制文件中。

動態鏈接(參考):一個小的exe文件加上一個或多個.so/.dll文件。您的可執行文件使用對庫的引用,因此使用相同庫的X程序只能引用相同的庫實例。它不會像靜態鏈接那樣複製代碼。

+0

謝謝,這正是我想知道的,.a文件在學習時更容易處理。 – codekiddy

+0

好吧,它在開始時比較容易,但是一旦你設法正確地設置你的共享庫(調試/發佈),它就是一樣的。最重要的是挑選圖書館的** debug **/release版本。 –

相關問題