如何找到庫,其中包含特定函數的定義?我收到鏈接錯誤。GNU構建系統問題
6
A
回答
4
可以使用nm
命令行工具來列出導出的符號中的二進制文件:
~/src> cat nm-test.c
static int plus_four(int x)
{
return x + 4;
}
int sum_plus_four(int a, int b)
{
return plus_four(a + b);
}
int product_plus_four(int a, int b)
{
return plus_four(a * b);
}
~/src> gcc -c nm-test.c
~/src> nm ./nm-test.o
00000000 t plus_four
00000023 T product_plus_four
0000000b T sum_plus_four
根據the manual,「T」意味着符號是在代碼(文字)鏈段,和大寫手段它是公開的。
如果你有一個你正在尋找的符號,你可以使用nm
來讓一個庫導出的符號可以通過例如grep:
$ find -name lib*.a /example/library/path | xargs nm | grep -E "T $SYMBOL_TO_FIND"
該命令行是未經測試的草圖,但它應該顯示該概念。
1
1
如果您想以非程序化的方式找出圖書館,您可能會發現LSB Navigator有用。在搜索框中輸入該函數,然後用綠色「狀態」檢查該行中的庫。
http://coldattic.info/pic/165509391387.png
這將是「傳統的」庫包含函數(在上面描述的例子,librt
是mq_unlink
正確的庫,讓你-lrt
鏈接)。只需與該庫鏈接,它幾乎可以在所有Linux系統上運行。
注:我是我推薦的工具的開發人員之一。
相關問題
- 1. OpenWRT構建系統中的Makefile問題
- 2. Gradle Android構建系統NDK問題
- 3. 訪問構建系統從另一個構建系統2
- 4. PHP構建系統
- 5. GNU編譯系統,闕
- 6. Python構建系統根本不工作。什麼是問題?
- 7. 崇高文字的MySQL構建系統變量替換問題
- 8. 構建文件系統爬蟲的正則表達式問題
- 9. LESS崇高文本構建系統的問題
- 10. Sublime Text 2 OSX Grunt構建系統有問題
- 11. 符號鏈接SublimeText3構建系統的問題(的Mac PC)
- 12. 標記系統創建出現問題
- 13. 帶問題層次結構的問題跟蹤系統
- 14. Grails - 項目構建系統
- 15. Java構建系統選項
- 16. linux構建系統工具
- 17. 構建通知系統
- 18. GNU MakeFile問題
- 19. Python燒瓶 - 有關係統的體系結構問題
- 20. 關於WSO2系統體系結構的三個問題
- 21. 問題與投票系統,Cookie問題
- 22. 粘性系統 - 問題 - 問題
- 23. 重構構建系統以使用Autotools
- 24. 如何構建顛覆的自動構建系統和迴歸測試系統?
- 25. Sigsuspend系統調用問題
- 26. 問題在android系統
- 27. SFML輸入系統問題
- 28. ExpandListview問題在android系統
- 29. Sys系統::信息 - 問題
- 30. 問題在android系統
這是否沒有找到給定的函數名稱的函數名稱,而不是給出函數名稱的函數庫? – 2010-06-30 07:54:07
@Pete:是的,但是由於它導出信息,它可以用於grep庫文件。 – unwind 2010-06-30 08:06:44
謝謝..我知道了.. – Dinesh 2010-06-30 08:44:26