(1)GCC 编译选项
-c 只编译
-o 输出文件
-S 汇编文件
-E 预编译
-O3,O2,O编译优化
-g gdb调试选项
(2) gdb调试
gcc使用-g生产的执行文件或core文件等
run:运行
list:显示源程序
next:下一步,不进函数
step:下一步,进入函数
print:打印变量
kill:结束程序运行
break:中断行
(3)静态库生成a文件
gcc -c sum.c ---> sum.o
ar -rv libmylib.a sum.o ----->libmylib.a
(4)动态库so文件生成
gcc -o libmylib.so sum.c --share ---> libmylib.so
(5)如何使用库
静态库:
如果生成库文件在/lib,/usr/lib//usr/local/lib下面,直接加-l库名即去头去尾。
如果不在下面,需要-L目录,-l库名,否则出现找不到库错误
int main()
{
void *handle=NULL;
int (*f)(int,int)=NULL;
handle=dlopen("./libdyn.so",RTLD_LAZY);
assert(handle);
dlerror(f);
f=dlsym(handle,"sum");
assert(f);
printf("%d\n",f(3,6));
dlclose(f);
return 0;
}