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

网站建设的完整流程包括哪些购物电商型网站怎么做

网站建设的完整流程包括哪些,购物电商型网站怎么做,给你一个网站你怎么做的,中国建设教育协会官方网站查目录 硬链接和软链接 硬链接 软链接 动态库和静态库 静态库 静态库的生成 静态库的使用 将库打包和使用 动态库 动态库的生成 动态库的使用 库搜索路径 硬链接和软链接 硬链接 上篇文章我们说到真正找到磁盘上的文件并不是文件名#xff0c;而是inode。其实在…目录 硬链接和软链接 硬链接 软链接  动态库和静态库 静态库 静态库的生成 静态库的使用 将库打包和使用 动态库 动态库的生成 动态库的使用  库搜索路径 硬链接和软链接 硬链接 上篇文章我们说到真正找到磁盘上的文件并不是文件名而是inode。其实在Linux中可以让多个文件名对应同一个inode这样的方式就是硬链接。 指令ln  总结  硬链接不是一个独立的文件 ,就是在指定目录内部的一组映射关系。相当于引用计数当没有文件名和inode映射时表示该文件被真正的删除。 硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件以防止“误删”的功能。 注硬链接只可以链接文件不可以链接目录因为引入了对目录的硬连接就有可能在目录中引入循环在目录遍历的时候系统就会陷入无限循环当中这样导致无法定位到访问目录。但是我们的Linux系统可以硬链接目录每个目录文件中含有两个隐藏文件分别为当前目录和上级目录当前目录隐藏文件就和当前目录硬链接。 软链接  硬链接是通过inode引用另外一个文件软链接是通过名字引用另外一个文件。 指令ln -s 总结 软连接是一个独立的文件有独立的inode软连接内容时指向目标文件的路径类似于Windows的快捷方式。 动态库和静态库 在之前的文章中我们提到过系统库当时只是简单的讲解了下静态库和动态库的优缺点这篇文章我们要从一个库的制作者和使用者来详细介绍第三方库的制作和使用。 静态库.a程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库动态库.so程序在运行的时候才去链接动态库的代码多个程序共享使用库的代码。一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表而不是外部函数所在目标文件的整个机器码在可执行文件开始运行以前外部函数的机器码由操作系统从磁盘上的该动态库中复制到内存中这个过程称为动态链接dynamic linking动态库可以在多个程序间共享所以动态链接使得可执行文件更小节省了磁盘空间。操作系统采用虚拟内存机制允许物理内存中的一份动态库被要用到该库的所有进程共用节省了内存和磁盘空间。 静态库 我们以一个库的制作者的角度自己编写一个可以实现整数加减的库就是将实现整数加减的两个函数声明和定义分开声明放在头文件中实现放在源文件中。 头文件 1 #pragma once 2 #includestdio.h 3 extern int Add(int,int); 1 #pragma once 2 #includestdio.h 3 extern int Sub(int,int);源文件  1 #includeAdd.h2 int Add(int x,int y)3 {4 return xy; 5 }1 #includeSub.h2 int Sub(int x,int y)3 {4 return x-y; 5 }当我们以库的制作者的身份将库写好后我们就以普通程序员的身份使用这个库编写简单的程序。 1 #includeAdd.h2 #includeSub.h3 int main()4 {5 int x 10;6 int y20;7 printf(%d %d %d\n,x,y,Add(x,y));8 printf(%d - %d %d\n,x,y,Sub(x,y)); 9 return 0;10 } 第一种使用方法就是将我们自己编写的源代码和库的源代码一起编译链接形成一个可执行程序即可。 但是这种使用方法我们要拿到库的源代码再将库的每个源代码和我们的源代码一起预处理、编译、链接形成可执行程序。对于我们这种小库可能没什么影响对于一些大的库源文件很多每个源文件都进行这三部操作的话很是浪费时间。 静态库的生成 对于上面的问题我们可以很好的解决不是库的源文件浪费时间么同时作为库的制作者我们也不想将我们的源代码公开那我们可以将我们的库先编译成为二进制文件(.O)文件将二进制文件和库使用者的二进制文件进行连接即可形成可执行程序。 makefile1 test:Add.o Sub.o testmain.o2 gcc -o $ $^3 %.o:%.c4 gcc -c $ 但是当我们库很大源文件很多时形成的二进制文件也特别多要是我们给库使用者二进制文件少给一个呢 当我们想要这个库时候是不是只需要将我们的源文件编译成.o文件和库文件进行链接即可。因此我们可以将库的源文件编译成.o文件打包交给程序员即可。 makefile static-liblibmymath.a2 $(static-lib):Add.o Sub.o3 ar -rc $ $^ 6 %.o:%.c7 gcc -c $8 .PHONY:clean9 clean:10 rm -rf *.o test指令ar -rc libmymath.a add.o sub.oar是gnu归档工具rc表示(replace and create) 当我们库的源文件很多时我们可以使用makefile将我们的源代码自动生成二进制文件再将我们的二进制文件全部形成我们的静态库。这里我们库的源文件很少我就直接给大家手动生成。 通过上面的操作我们就可以将库的源文件生成二进制文件进行生成静态库。 静态库的使用 将生成好的二进制文件和头文件拷贝到我们的使用者编写的源代码下就可以使用库了。但是我们在使用静态库时还有很多小细节要注意。 将静态库和我们的源文件进行链接时首先要表用链接库的名称和静态库的路径。其中库的名称是去掉后缀(.a)和lib。 -l 静态库的名称   代表我们链接哪一个静态库-L 路径    代表所要链接静态库的所在路径 将库打包和使用 上面只是进行了二进制文件的打包当我们库源文件很多时头文件也很多因此我们可以将头文件和二进制文件分开存储在一个目录中打包交给使用的程序员。这里我们就不打包了我们只将其放在同一个目录中使用。 static-liblibmymath.a2 $(static-lib):Add.o Sub.o3 ar -rc $ $^6 %.o:%.c7 gcc -c $8 .PHONY:output9 output:10 mkdir -p mymath_lib/include11 mkdir -p mymath_lib/lib 12 cp -f *.h mymath_lib/include13 cp -f *.a mymath_lib/lib14 .PHONY:clean15 clean:16 rm -rf *.o test mymath_lib 但是打包好的头文件和二进制文件在统一目录下而我们的源文件并不在统一目录下因此我们在使用的时候还要加上一些选项。 注头文件的查找在当前目录下或者指定目录下查找因此我们加上头文件的路径。 -I 头文件路径 动态库 动态库的生成 动态库也是将所有的的源文件形成二进制文件文件生成的但是和动态库的生成方式和使用方式略有差异。  注意动态库的生成是使用gcc编译器来完成的因此比较重要 makefile1 dy-liblibmymath.so 2 $(dy-lib):Add.o Sub.o3 gcc -shared -o $ $^4 %.o:%.c5 gcc -fPIC -c $6 .PHONY:output7 output:8 mkdir -p mymath_lib/include9 mkdir -p mymath_lib/lib 10 cp -f *.h mymath_lib/include11 cp -f *.a mymath_lib/lib12 .PHONY:clean13 clean:14 rm -rf *.o *.so mymath_lib ~ shared: 表示生成共享库格式fPIC产生位置无关码(position independent code)库名规则libxxx.so 有了上面静态库的生成静态库的生成我们就不过多赘述只是生成动态库执行的选项不一样而已。 动态库的使用  动态库的使用也是有很多的小细节使用不当也会产生找不到动态库或者找不到头文件的问题。  就像下面我们直接使用使用静态库的方法使用动态库系统还是找不到我们的库在哪里。  原因 静态库是直接和我们的可执行程序链接在一起的在连接的时候告诉我们的编译器我们库的路径编译器就可以找到。但是对于动态库不是链接在可执行程序中可执行程序和库必须都加载到内存中我们告诉了gcc编译器我们的库在哪里但是操作系统要将我们的库加载到内存中操作系统却不知道我们的库在哪里系统默认找不到。因此我们要解决系统找不到我们库的问题。 库搜索路径 方法一将头文件和库文件安装到系统中  /usr/include/lib64 在我们这两个系统路径下分别存放着库的头文件和二进制文件我们可以将我们的二进制文件和头文件分别拷贝到上面的系统路径下即可。 方法二建立一个软链接 在生成可执行程序的目录下建立一个库的软链接即可。 方法三修改环境变量 LD_LIBRARY_PATH 执行我们的可执行程序系统不仅会在指定的路径下寻找我们的动态库还会在一个环境变量中寻找。Linux中存在这样一个环境变量记录着动态库的存储路径。我们可以将我们的动态库添加到这一环境变量中即可。 注意 当我们退出我们的云服务器重新登录后添加的环境变量就将会重置。  方法四更改配置文件 Linux下含有一个文件夹其中包含有关动态库加载的配置文件里面只含有一个路径。我们可以在其目录下创建一个相同格式的空白文件再将我们库的路径填入其中保存即可。 今天对Linux下动静态库的分享到这就结束了希望大家读完后有很大的收获也可以在评论区点评文章中的内容和分享自己的看法个人主页还有很多精彩的内容。您三连的支持就是我前进的动力感谢大家的支持
http://www.hkea.cn/news/14523175/

相关文章:

  • 济南制作网站企业电商网站建设基本流程
  • 上海行业门户网站建设技术宜昌做网站
  • 烟台网站改版用数据库代码做家乡网站
  • 做普通网站需要服务器吗wordpress 小程序框架
  • window7 iis建立网站拓者设计吧注册还要钱
  • 搭建本地环境做网站2021年11月最新新闻热点事件
  • 百度关键词网站排名优化软件wordpress怎么让文章只显示摘要
  • 下载网站的表格要钱如何做东莞20个镇街新增90例
  • 广东省网站免备案表桦甸网站开发定制
  • 网站建设和制作wordpress 纯静态插件
  • 鞍山网上制作网站wordpress建立网站实例
  • ict网站建设网站站长
  • 中小企业网站建设与推广2018企业网站转化率
  • 济南网络建站模板网络推广公司营业执照
  • 织梦网站做关键词php做网站图集
  • 网站建设分金手指排名二五经销商管理系统
  • 镇江牛吧企业网站建设与推广公司如何做好网站关键词布局
  • 衡水龙华的网站建设中文网站模板免费下载
  • 有什么可以做兼职的网站如何设计好酒店网站模板
  • 建设行业网站wordpress生成软件
  • 向国旗敬礼做美德少年网站长春网站建设有什么
  • 1000学习做网站贵吗呼伦贝尔网站制作
  • 企业官网网站 优帮云住房与城乡建设部网站工程造价
  • 商城网站设计公司排名如今做哪些网站能致富
  • 网站怎么做浏览量才会多百度竞价开户多少钱
  • 安卓手机建站怎么用虚拟机做网站
  • 高端网站开发哪家专业mvc4做网站五
  • 代驾软件开发需要多少钱合肥网站排名优化公司
  • 宁波做网站烟台厂商完整php网站开发
  • 专业 网站设计公司价格3d建模培训学校