linux/windows下查看目标文件.a/.lib的函数符号名称

1、linux下

(1)、 objdump -t 查看对象文件所有的符号列表;例如

 

 objdump -t libtest.o

(2)、nm列出目标文件(.o)的符号清单;例如

nm -s filename.a/filename.o/a.out

(3)、列出所有定义的符号

nm --defined-only libname.a

 

(4)、显示所有对象文件(.o文件)的列表;例如

ar -t libname.a

 

2、windows下

(1)、 objdump -t 查看对象文件所有的符号列表;例如

 objdump -t libtest.obj

 

(2)、dumpbin -SYMBOLS 查看对象文件所有的符号列表

dumpbin -SYMBOLS deblock.obj


(3)、显示所有对象文件(.obj)的列表;例如

lib -list libname.lib


 

 

参考网址:https://my.oschina.net/alphajay/blog/7730

参考网址:http://bbs.csdn.net/topics/70373115

参考网址:http://www.cnblogs.com/kuangke/p/6155368.html           VS2012下X64平台嵌入汇编程序

### 解决 `aarch64-linux-gnu-ld cannot find -lrfdc` 错误的方法 在开发环境中,当遇到链接器错误提示 `cannot find -l<library>` 时,这意味着链接阶段未能定位到指定的库文件。对于 `-lrfdc` 的问题,以下是详细的分析与解决方案: --- #### 1. **确认库文件的存在** 首先需要检查系统中是否存在名为 `librfdc.so` 或其他形式(如 `librfdc.a`)的相关库文件。可以使用以下命令进行全局搜索: ```bash find / -name "librfdc*" 2>/dev/null ``` 如果未发现任何匹配的结果,则表明该库尚未安装或被正确部署。 --- #### 2. **安装必要的依赖包** 根据引用中的描述[^1]以及常见的嵌入式开发流程,在使用交叉编译工具链的情况下,可能需要额外下载并配置相应的 SDK 资源包。例如,针对 ARM 平台 (aarch64),可以从官方支持站点获取预构建好的二进制文件或将源码自行编译生成目标库。 具体操作步骤如下所示: - 下载适合版本号为 2017.4 的 SDK; - 将其解压后按照指引完成初始化过程; - 确认路径已添加至环境变量 `$PATH` 中以便后续调用方便快捷[^2]。 --- #### 3. **指定正确的库路径** 即便拥有正确的库文件,但如果它们位于非标准目录之外,默认情况下链接器不会自动扫描这些地方寻找依赖项。因此建议显式告知 GCC/G++ 工具链去哪里找寻所需的外部模块。有两种主要途径可供选择: ##### 方法一:临时增加参数传递给编译指令 可以在 Makefile 或直接运行 gnu 编译套件的时候附加选项指明额外搜寻范围。例如: ```bash g++ your_code.cpp -o output_program -L/custom/library/path -lrfdc ``` 其中 `-L` 参数后面紧跟的是存放动态/静态库的具体地址;而 `-l` 则表示要链接的目标名称去掉前缀(`lib`)和扩展名后的短名字部分[^3]。 ##### 方法二:持久化设置通过修改全局配置文件实现自动化管理 编辑 `/etc/ld.so.conf.d/user_defined_libs.conf` 添加新行记录新增加的第三方资源位置信息之后保存退出再执行刷新缓存动作让改动即时生效: ```bash echo "/custom/library/path" | sudo tee -a /etc/ld.so.conf.d/user_defined_libs.conf sudo ldconfig ``` --- #### 4. **检查交叉编译器的有效性** 从另一个角度出发考虑可能存在兼容性方面的问题——即所使用的主机端编译器是否能够理解目标架构下的符号定义规则。正如提到过的那样,“command not found”的现象往往暗示着 PATH 设置不当或者是根本就没有准备好完整的 cross-toolchain 组件集合[^4]。此时应当参照之前成功的项目经验重新审视整个工作流设计合理性,并确保每一步都严格遵循最佳实践指导原则来进行调整优化直至恢复正常运作状态为止。 --- ### 结论 综上所述,解决此类链接期找不到特定函数库的情况一般涉及以下几个关键环节的操作组合拳出击方能奏效:一是核实实体对象本身确实存在与否;二是合理规划导入机制从而便于识别关联要素之间的映射关系;三是审慎评估潜在冲突因素进而采取针对性措施消除隐患保障整体稳定性表现良好。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值