您现在的位置是:主页 > news > 动态网站开发基础教程课后习题答案/免费创建网站的平台
动态网站开发基础教程课后习题答案/免费创建网站的平台
admin2025/6/29 15:51:55【news】
简介动态网站开发基础教程课后习题答案,免费创建网站的平台,wordpress特效css,西安免费网站建设Linux 下 使用 locate 命令 定位文件位置 locate libc.a/usr/lib/x86_64-linux-gnu/libc.a /usr/share/doc/libklibc/README.klibc.archLinux下的库操作工具-nm、ar、ldd、ldconfig、ld.so ldd 检查依赖 主要整理自 – 该文章 ldd是用来分析程序运行时需要依赖的动态库的工具&…
动态网站开发基础教程课后习题答案,免费创建网站的平台,wordpress特效css,西安免费网站建设Linux 下 使用 locate 命令 定位文件位置 locate libc.a/usr/lib/x86_64-linux-gnu/libc.a
/usr/share/doc/libklibc/README.klibc.archLinux下的库操作工具-nm、ar、ldd、ldconfig、ld.so ldd 检查依赖
主要整理自 – 该文章 ldd是用来分析程序运行时需要依赖的动态库的工具&…
Linux 下 使用 locate 命令 定位文件位置
locate libc.a/usr/lib/x86_64-linux-gnu/libc.a
/usr/share/doc/libklibc/README.klibc.arch
Linux下的库操作工具-nm、ar、ldd、ldconfig、ld.so
ldd 检查依赖
主要整理自 – 该文章
ldd是用来分析程序运行时需要依赖的动态库的工具;
nm是用来查看指定程序中的符号表相关内容的工具
ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.2) 2.27which ldd
/usr/bin/ldd
- 示例 ldd 检查依赖
ldd libkrrface.so linux-vdso.so.1 (0x0000007f82c5b000)libdl.so.2 => /lib64/libdl.so.2 (0x0000007f7d75a000)libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000007f7d5b5000)libm.so.6 => /lib64/libm.so.6 (0x0000007f7d4f4000)libgomp.so.1 => /lib64/libgomp.so.1 (0x0000007f7d4b3000)libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000007f7d482000)libpthread.so.0 => /lib64/libpthread.so.0 (0x0000007f7d44d000)libc.so.6 => /lib64/libc.so.6 (0x0000007f7d2d7000)/lib/ld-linux-aarch64.so.1 (0x0000007f82c2d000)/*
# 第一列:程序需要依赖什么库
# 第二列: 系统提供的与程序需要的库所对应库位置
# 第三列:库加载的开始地址
*/
- 示例 nm 查看指定程序中的符号表相关内容
/*
直接 检查所有 , 可能会输出一些不是很能看懂的东西
*/nm -D libkrrface.so 00000000051a3b08 V _ZTVN3MNN12SizeComputerE
00000000051a3b38 V _ZTVN3MNN13WrapExecutionE
00000000051a4a88 V _ZTVN3MNN7Express9Optimizer10ParametersEU _ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEEU _ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEU _ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEEU _ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEU _ZTVSiU _ZTVSt13basic_filebufIcSt11char_traitsIcEEU _ZTVSt14basic_ifstreamIcSt11char_traitsIcEEU _ZTVSt14basic_ofstreamIcSt11char_traitsIcEEU _ZTVSt15basic_streambufIcSt11char_traitsIcEE/*
在nm的时候,加上-C选项,就可以把这些难以识别的符号,转换成便于我们阅读的符号TestHello()
这个主要是c++中的mangle机制所导致的,加上-C就是指定列出的符号是demangle了的
*/nm -D libkrrface.so -C00000000051a3b08 V vtable for MNN::SizeComputer
00000000051a3b38 V vtable for MNN::WrapExecution
00000000051a4a88 V vtable for MNN::Express::Optimizer::ParametersU vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >U vtable for std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >U vtable for std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >U vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >U vtable for std::istreamU vtable for std::basic_filebuf<char, std::char_traits<char> >U vtable for std::basic_ifstream<char, std::char_traits<char> >U vtable for std::basic_ofstream<char, std::char_traits<char> >U vtable for std::basic_streambuf<char, std::char_traits<char> >
- 通常会 使用 grep 来 判断指定程序中有没有定义 指定的符号 或者 方法
nm -D libkrrface.so | grep WF_000000000008f000 T WF_HeadLite_HeadAlign
000000000008f510 T WF_HeadLite_HeadDetect
000000000008f180 T WF_HeadLite_HeadFeatureExtract
000000000008f350 T WF_HeadLite_HeadFeatureVerify
000000000008f178 T WF_HeadLite_GetHeadAlignSize
000000000008ec70 T WF_HeadLite_InitializeInstance
000000000008edf0 T WF_HeadLite_ReleaseInstance/*第一列:当前符号的地址第二列:当前符号的类型第三列:当前符号的名称
*/
strings 用法直接参考大佬的博客即可
/*
strings 基本用法是 打印 程序
*/strings test.py /*
进阶用法 ,当然是 单个文件 或者 多个文件 进行 关键词 搜索
*/strings -f * | grep "my dear"strings /lib64/libc.so.6 | grep GLIBC
ldd 和 readelf -d 用法示例
- 截图参考博文链接