2010-11-26 26 views
0

我想了解某個特定軟件包適合我正在處理的項目的方式。我相信只有這個軟件包的一部分實際上將它變成了項目的二進制文件,我需要找出究竟哪些部分。來自這個包的庫函數是從許多其他地方調用的(即其他幾個包依賴於它)。將源跟蹤到二進制

我打算建立該項目並分發它。通過查看我的相關軟件包中的所有頭文件,確定要分發哪些源文件 - >二進制文件是唯一的方法嗎?還是有更聰明的方法來解決這個問題?

由於提前,

+0

嗨,我們在說什麼?你問如何確定軟件包依賴性而不是庫依賴性? – 2010-11-26 14:14:55

+0

Linux(Ubuntu)。我已經意識到軟件包的依賴性,但需要更深入一些。 *此軟件包中的某些*代碼是根據LGPL授權的,我需要了解我們是否實際使用該代碼,或者它是否只是坐在那裏。 – ajwood 2010-11-26 14:25:49

回答

1

你還沒有給我們太多的信息去,但這裏的,將工作的方法:刪除軟件包的部分,看看該項目仍然會進行編譯。

0

使用nm解包靜態庫。這將列出lib中包含的所有文件和方法。

你也可以嘗試使用字符串。 這顯示在二進制文件中定義的字符串。

查看源代碼,看看你定義的字符串是否在庫中。

類似gprof的東西也可以用來查看你的可執行文件調用哪些方法。