linux下出现 undefined reference to

首先要明确这个错误是什么意思,未定义的引用,这个都是由于库无法链接导致的。

1.一般出现这个错误,首先应该检查makefile文件中链接库的位置是否正确,确保能够正确的找到库的位置。

2.库存放路径没有错误,但是依旧报错,那应该检查库的版本,有32和64位,确保系统版本对应,使用指令-file即可查看文件的系统位数。

3.一般来说正常情况下,可以正常编译生成可执行文件,但有时候会在运行时报错。

        这个时候使用指令ldd可以查看生成的可执行文件的依赖库,从而对症下药。有时候需要使用ln指令进行建立链接。可以用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/库的位置,建议加上$LD_LIBRARY_PATH:   

        注意:这行只对当前的shell起作用,而且不要直接覆盖,如果直接覆盖,可能将别人链接的库直接改了位置,尤其是服务器,导致其他服务无法正常启动运行。而加上的话,是在原来的基础上增加而不是覆盖。这样就不会出错了。

4.当然使用指令ldd可以查看生成的可执行文件的依赖库,这个时候可以对症下药。有时候需要使用ln指令进行建立链接。

猜你喜欢

转载自blog.csdn.net/LeeKitch/article/details/80194641