首先要明确这个错误是什么意思,未定义的引用,这个都是由于库无法链接导致的。
1.一般出现这个错误,首先应该检查makefile文件中链接库的位置是否正确,确保能够正确的找到库的位置。
2.库存放路径没有错误,但是依旧报错,那应该检查库的版本,有32和64位,确保系统版本对应,使用指令-file即可查看文件的系统位数。
3.一般来说正常情况下,可以正常编译生成可执行文件,但有时候会在运行时报错。
这个时候使用指令ldd可以查看生成的可执行文件的依赖库,从而对症下药。有时候需要使用ln指令进行建立链接。可以用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/库的位置,建议加上$LD_LIBRARY_PATH:
注意:这行只对当前的shell起作用,而且不要直接覆盖,如果直接覆盖,可能将别人链接的库直接改了位置,尤其是服务器,导致其他服务无法正常启动运行。而加上的话,是在原来的基础上增加而不是覆盖。这样就不会出错了。
4.当然使用指令ldd可以查看生成的可执行文件的依赖库,这个时候可以对症下药。有时候需要使用ln指令进行建立链接。