当前位置: 首页 > news >正文

中国最大的网站排名校园品牌推广方案

中国最大的网站排名,校园品牌推广方案,wordpress支持手机吗,运动服饰网站建设预算#x1f525;#x1f525; 欢迎来到小林的博客#xff01;#xff01;       #x1f6f0;️博客主页#xff1a;✈️林 子       #x1f6f0;️博客专栏#xff1a;✈️ Linux       #x1f6f0;️社区 :✈️ 进步学堂       #x1f6f0…         欢迎来到小林的博客       ️博客主页✈️林 子       ️博客专栏✈️ Linux       ️社区 :✈️ 进步学堂       ️欢迎关注点赞收藏✍️留言 目录 静态库和动态库静态库静态库的生成静态库的使用 动态库生成动态库 静态库和动态库 静态库.a程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静 态库动态库.so程序在运行的时候才去链接动态库的代码多个程序共享使用库的代码。一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表而不是外部函数所在目标文 件的整个机器码在可执行文件开始运行以前外部函数的机器码由操作系统从磁盘上的该动态库中复制到内存中这个 过程称为动态链接dynamic linking动态库可以在多个程序间共享所以动态链接使得可执行文件更小节省了磁盘空间。操作系统采用虚 拟内存机制允许物理内存中的一份动态库被要用到该库的所有进程共用节省了内存和磁盘空间。 静态库 静态库的生成 生成静态库我们只需要把要打包的.o目标文件打包在一起生成静态库即可。 首先我们要先有4几个.c和.h的文件。 add.c #include add.hint add(int x,int y) {return xy; } add.h int add(int x,int y); sub.c #includesub.hint sub(int x,int y) {return x- y; } sub.h int sub(int x,int y);然后我们编写一个Makefile自动化构建工具。 libmymath.a:sub.o add.oar -rc $ $^ %.o:%.cgcc -c $.PHONY:clean clean:rm -rf libmymath.a *.o output.PHONY:output output:mkdir output cp *.h output cp libmymath.a output libmymath.a:sub.o add.o libmymath.a 这个静态库是依赖于sub.oadd.o。 ar -rc $ $^ 生成静态库。 %.o:%.c 当前目录下所有的.o文件都依赖于.c文件。 gcc -c $ 生成所有可生成的.o文件。 .PHONY:clean : 清除所有生成的文件。 .PHONY:output把.h和静态库打包进一个文件夹。 然后我们make一下就可以生成静态库了。 我们会发现先生成.o文件再通过.o目标文件打包成静态库libmymath.a。 然后我们使用output把头文件和静态库打包进同一个文件夹。并且进入output文件夹。 静态库的使用 要使用静态库我们要先有一个主函数。我们创建一个test.c的主文件。 #includestdio.h #includeadd.h #includesub.hint main() {int x 10;int y 20;int r1 add(x,y);int r2 sub(x,y);printf(%d %d %d,x,y,r1);printf(%d - %d %d,x,y,r2);return 0; } 那么我们还需要编译这个test.c文件我们需要在编译的时候。指定它的库路径和库名。 gcc test.c -L. -lmymath 编译 -L 要链接的静态库路径.为当前路径 -l 要链接的静态库名静态库名不包含开头的lib和结尾的.a/.so 编译完之后会生成一个可执行文件。 执行结果。 这里忘记换行了。但不影响。 动态库 生成动态库 生成动态库就简单多了。我们还是使用Makefile来自动化生成。 libmymath.so:add.o sub.o #libmymath.so 依赖于add.o sub.ogcc -shared -o $ $^#产生.o目标文件程序内部的地址方案是: 与位置无关,库文件可以在内存的任何位置加载而且不影响和其他程序的关联性 %.o:%.cgcc -fPIC -c $.PHONY:clean clean:rm -r -f libmymath.so *.o lib .PHONY:output output:mkdir lib cp *.h lib cp libmymath.so lib shared: 表示生成共享库格式fPIC产生位置无关码(position independent code)库名规则libxxx.so 这样我们就生成了.so的动态库。 然后我们output打包一下。 和刚才一样我们创建一个.c的主文件。 test.c #includestdio.h #includeadd.h #includesub.hint main() {int x 10;int y 20;int r1 add(x,y);int r2 sub(x,y);printf(%d %d %d,x,y,r1);printf(%d - %d %d,x,y,r2);return 0; } 然后我们使用makefile来生成自动化编译。 makefile test:test.cgcc -o $ $^ -I. -L. -lmymath .PHONY:clean clean:rm -f test 然后编译执行。 这是在同一目录下可以直接执行如果在不同目录下。则会报错。 与动态库不再同一目录 此时我的动态库在lib目录下源文件与lib在同一目录下。这时我们要稍微修改一下Makefile。 test:test.cgcc -o $ $^ -I./lib -L./lib -lmymath .PHONY:clean clean:rm -f test然后编译 提示我们编译失败这是因为不在同一目录下。加载器无法找到动态库并把它加载到内存这时候我们把动态库添加进环境变量即可。 格式 export LD_LIBRARY_PATH lib文件目录
http://www.lakalapos1.cn/news/18685/

相关文章:

  • 网站开发应聘问题网站域名实名认证通知
  • 深圳专业企业网站建设模板wordpress 阅读插件
  • 网站关键词快速排名优化上海做网站运维的公司
  • 优化网站设计有哪些方法广西上林建设局网站
  • 天津地产网站建设广州实时热点新闻事件
  • 做公益选哪个网站好网站建设培训公司排名
  • 外贸看的英文网站十大经典随身空间小说推荐
  • 做王境泽gif的网站南京网页网站制作
  • 宁波网站门户设计steam交易链接怎么获取
  • 邢台市住房和城乡建设局网站海南省交通工程建设局网站
  • 学习网站建设网站数字化档案馆及网站的建设
  • 个人网站名称怎么取容易备案免费网上商城
  • 网站备案在哪里审批wordpress 心理
  • win本地网站建设德州专业网站制作哪家好
  • 企业简介 网站建设阆中 网站建设
  • iis如何做网站管理器深圳企业年报
  • 东莞市建设规划局网站首页合肥网站设计制作
  • Python电影网站开发与传统市场营销的区别与联系有哪些
  • 哪里有网站建设流程wordpress添加用户关闭邮箱
  • 织梦网站模板如何安装教程视频城市建设理论研究上传哪个网站
  • 赣州兼职网站建设ps 怎么做网站搜索框
  • 网站开发询价函做企业网站用什么程序
  • 杭州网站推广wordpress 使用技巧
  • 国家认可的教育培训机构六安seo网站推广报价
  • 南宁网站建设电话咨询中文网站常用字体
  • 深圳网站建设找哪家网站做动态还是静态
  • 顺德技术支持 骏域网站建设专家下载百度2023最新版
  • 建一个网站的步骤郑州网站建设氵汉狮网络
  • 建设银行开通网银网站桂林wordpress
  • 建网站英文专门做游戏交易的网站有哪些