TypeCodes

解决make编译链接动态库错误:libxx.so: undefined reference to xx

最近在写一个Makefile,调试时遇到了libsrcpbl.so: undefined reference to gcProgramName的问题。在这个Makefile脚本里面,终极目标是通过链接一个自定义的动态库libsrcpbl.so生成一个ELF目标文件。

由于链接生成libsrcpbl.so动态库的.o文件比较多,无法定位具体的错误程序文件和位置,所以折腾了较长时间。

- 阅读剩余部分 -

Unix系统中nm命令展示目标文件符号的方法

在unix系统中,通过gnu开源gcc或者g++工具生成的目标文件(object file),可以用nmobjdumpreadelf这三个命令来查看。

nm:显示目标文件中的符号; objdump:打印目标文件中的详细信息; readelf:显示关于 ELF 目标文件的信息。

之前在调试makefile文件的时候,链接动态库出错:libsrcpbl.so: undefined reference to 'gcProgramName'。也就是变量gcProgramName没定义,后来通过nm -u libsrcpbl.so命令辅助排查解决了。

- 阅读剩余部分 -