现在的位置: 首页 > 综合 > 正文

linux平台开发问题个人总结. 持续更新帖~

2013年10月21日 ⁄ 综合 ⁄ 共 307字 ⁄ 字号 评论关闭

1. 如果编译连接都通过了, 可是运行时却找不到函数符号了.

错误信息: ./a.out: symbol lookup error: ./a.out: undefined symbol: xxx()

错误原因: 请注意你的目标文件是否存在多份? 比如程序所在目录有个xxx.so库, 系统目录/usr/local/lib里也有一份. 可是现在程序目录下的改变了一个函数, 编译连接时makefile里指定的是程序目录, 因此可以编译链接通过, 但实际执行的时候会优先去系统目录里找, 这时候找的是系统目录里旧的.so, 因此找不到符号了. 

建议: 确认目标文件是否存在多份? 是否在优先搜索的系统目录里有旧的备份? 也看看LD_LIBRARY_PATH环境变量.

抱歉!评论已关闭.