1、弱符号与强符号的区别:
强符号:编译器默认的函数与已初始化的全局变量;强符号不可以被定义多次!
弱符号:未初始化的全局变脸为弱符号;
需要注意:如果一个符号在某一个目标文件中是强符号,在其它目标文件中是弱符号,则使用强符号;如果一个符号在所有目标文件中都是弱符号,则使用弱符号;
2、强引用与弱引用的区别:
强引用:在link时,对于目标文件中使用的外部符号,如果没有从其它link文件中找到该符号的定义,链接器会报符号错误,则这种引用为强引用;
弱引用:同上,若链接器没有报引用符号错误,则这种引用为弱引用;
-lpthread的作用:
在Linux下,有一个选项是-lpthread,如果在编译时使用了-lpthread,则使用的是多线程的glibc;如果没有使用-lpthread,则使用的是单线程的glibc;