(待整理)
函数库链接的5个秘密:
1.编译器会用-Lpathname来指定动态链接库的位置,以gcc为例,
gcc test.c -o test -lmyBaic -L ./code/libs
该语句链接./code/libs下的libmyBasic.so,生成可执行文件test.
另外也可以指定环境变量,用来指定编译时查找动态库的位置,为LD_LIBRARY_PATH和LD_RUNPATH.
2.库约定
预处理命令#include<头文件>,有些约定了头文件的查找路径(自动链接),而有些会需要动态链接.
以Solaris 2.x为例:
自动链接: <stdio.h> /usr/lib/libc.so
动态链接: <thread.h> -lthread
3.静态库与动态库的动作(链接语义)不同
当程序在scanf()和printf()中使用浮点数格式,但并不调用任何其他浮点数函数时,就有可能猜测错误.