对于函数未定义引用,需要分编译时和执行时
在编译时出现函数未定义引用:
1、查看所编译的函数的头文件是否包含了该文件所定义的文件
2、查看所编译的函数的目录是否和头文件所在的目录是同一目录,如果不是同一目录,编译命令需要加-I头文件所在目录
3、是否包含所编译所需的所有的库文件,库文件也分动态库文件和静态库文件,如果是静态库文件需要考虑库文件的定义的优先级(一般放在所编译文件的后面);如果是动态文件需要考虑是否配置有动态链接库的执行环境
在执行时出现函数未定义引用:
1、如果在执行时报错,一般是在编译时使用了动态库编译,但是程序在执行的过程中在指定的库目录下没有找到该编译时的动态库,可以在指定的目录下创建该动态库并链接到编译时库的地址
执行该命令可以在指定的目录下自动创建链接:
sudo ln -sf /partition6/practice/lib/libXXX.so /usr/lib/libXXX.so
2、将编译时所需要的动态库复制到指定的目录下