如何找到库,其中包含特定函数的定义?我收到链接错误。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. PHP构建系统
- 3. GNU编译系统,阙
- 4. LESS崇高文本构建系统的问题
- 5. 崇高文字的MySQL构建系统变量替换问题
- 6. 符号链接SublimeText3构建系统的问题(的Mac PC)
- 7. 带问题层次结构的问题跟踪系统
- 8. 构建通知系统
- 9. linux构建系统工具
- 10. GNU MakeFile问题
- 11. Python烧瓶 - 有关系统的体系结构问题
- 12. 重构构建系统以使用Autotools
- 13. 问题与投票系统,Cookie问题
- 14. 如何构建颠覆的自动构建系统和回归测试系统?
- 15. 问题跟踪系统?
- 16. c#插件系统问题
- 17. 问题在android系统
- 18. 系统问题()调用
- 19. 系统日志问题
- 20. codeigniter模板系统问题
- 21. 问题使用系统
- 22. SFML输入系统问题
- 23. PHP登录系统问题
- 24. 投票系统问题
- 25. 与系统意图问题
- 26. Ajax消息系统问题
- 27. 系统特权问题
- 28. BootStrap网格系统问题
- 29. wpf布局系统问题
- 30. php链接系统问题
这是否没有找到给定的函数名称的函数名称,而不是给出函数名称的函数库? – 2010-06-30 07:54:07
@Pete:是的,但是由于它导出信息,它可以用于grep库文件。 – unwind 2010-06-30 08:06:44
谢谢..我知道了.. – Dinesh 2010-06-30 08:44:26