如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Unix系统下C编程示例编译和执行步骤纲要功能及用法gcc的功能gcc的用法几点说明参数参数(续)gcc的常用选项gcc常用选项c++程序编译方法编译多个文件目录结构(1)编译命令$gccmy_app.cgreeting.c–omy_app目录结构(2)编译方式(1)$gccmy_app.cfunctions/greeting.c–omy_app-Ifunction目录结构(2)编译方式(2)分步编译命令:1、$gcc-cmy_app.c-Ifunctions2、$gcc-cfunctions/greeting.c3、$gccmy_app.ogreeting.o–omy_app思路:编译每一个.c文件,得到.o的目标文件;将每一个.o的目标文件链接成一个可执行的文件;gcc的工作过程头文件链接器与库文件关于库文件的规定静态库引例设有C语言文件f1.c,f2.c,f3.c,它们的内容分别为:编译与链接构造和管理静态库说明使用自己的库共享库构造共享库共享库的使用1.dlopendlopen函数的相关说明2.dlsym3.dlclose4.dlerror共享库使用示例#include<stdio.h>#include<dlfcn.h>#defineSO_FILE"./libmy.so"main(){void*sfp;char*err;inttmpi=16;int(*f1)(int),(*f2)(char*);//定义函数指针sfp=dlopen(SO_FILE,RTLD_LAZY);//打开共享库if(sfp==NULL){fprintf(stderr,dlerror());exit(1);}f1=dlsym(sfp,"f1");//获取函数f1入口地址(指针)err=dlerror();//检查是否成功if(err){fprintf(stderr,err);exit(2);}f2=dlsym(sfp,"f2");//获取函数f2入口地址err=dlerror();//检查是否成功if(err){fprintf(stderr,err);exit(3);}fprintf(stderr,"-----------begine-------------\n");f2("TestString");//调用函数f2f1(tmpi);//调用函数f1fprintf(stderr,"+++++++++end+++++++++\n");dlclose(sfp);//关闭共享库exit(0);}编译方法共享库的管理(1)ldd(2)ldconfigldconfig的使用示例