linux-如何从lib .so文件中查找功能?
作者:互联网
我可以打印一个* .so文件的导出功能列表,例如
nm -C lib / libopencv_ml.so
然后找到我的功能
nm -C lib / libopencv_ml.so | grep我的功能
但是,当我想从所有.so文件中查找函数时,如何确定哪个.so包含我的函数?
这只是打印功能的所有条目,但我需要知道它从哪个.so文件中出现.
nm -C lib / *.so | grep cvSetZero
似乎-H选项也没有帮助.
-H,–with-filename打印每个匹配项的文件名
nm -C lib / *.so | grep -Hn cvSetZero
生成如下输出:
(standard input):98: U cvSetZero
(standard input):796: U cvSetZero
(standard input):2564:00000000000b2540 T cvSetZero
(standard input):8673: U cvSetZero
(standard input):12233: U cvSetZero
(standard input):15503: U cvSetZero
(standard input):17460: U cvSetZero
(standard input):18727: U cvSetZero
(standard input):20865: U cvSetZero
解决方法:
我找到了解决方案
nm -C -A lib / *.so | grep cvSetZero
它产生这种输出:
lib/libopencv_calib3d.so: U cvSetZero
lib/libopencv_contrib.so: U cvSetZero
lib/libopencv_core.so:00000000000b2540 T cvSetZero
lib/libopencv_highgui.so: U cvSetZero
lib/libopencv_imgproc.so: U cvSetZero
lib/libopencv_legacy.so: U cvSetZero
lib/libopencv_ml.so: U cvSetZero
lib/libopencv_objdetect.so: U cvSetZero
lib/libopencv_video.so: U cvSetZero
标签:nm,grep,shared-libraries,linux 来源: https://codeday.me/bug/20191118/2026792.html