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

网站建设中的技术问题潍坊精神文明建设网站

网站建设中的技术问题,潍坊精神文明建设网站,net做公司网站是否适合,做电商是什么工作一、库的作用 1、提高开发效率#xff0c;让开发者所有的函数实现不用从零开始。 2、隐藏源代码。 库其实就是所有的.o文件用特定的方式进行打包形成一个文件#xff0c;各个.o文件包含了源代码中的机器语言指令。 二、动态库和静态库的制作和使用 2.1、静态库的制作和使用…一、库的作用 1、提高开发效率让开发者所有的函数实现不用从零开始。 2、隐藏源代码。 库其实就是所有的.o文件用特定的方式进行打包形成一个文件各个.o文件包含了源代码中的机器语言指令。 二、动态库和静态库的制作和使用 2.1、静态库的制作和使用 先将我们的.c文件或者是.cpp文件形成.o文件指令为 gcc/g -c 要形成的.o文件名 .c文件 假设在我当前目录下有mystdio.o和mymath.o两个.o文件要将这两个.o文件打包形成静态库我们要用ar指令 ar -rc libmyc.a名字.a后缀表示静态库真正的库名要去掉lib去掉.amystdio.o mymath.o 跟上.o文件名 上面指令-rc中的r表示replacec表示create也就是说你要我形成的这个库如果原本没有我就帮你形成一个新的库如果有了那我就把你原来旧的库替换掉。 此时在我当前路径下就有这个库了。但是当我们去编译的时候gcc编译器是不认识我们这个静态库的gcc默认只能识别lib64目录下的C标准库要让gcc链接我们的库需要在指令中指明哪一个库让gcc链接。 gcc -o myexe要形成的可执行文件名 test.c所依赖的文件 -lmyc指明要链接myc这个静态库 -L .-L 路径表示myc这个库在哪个路径下 2.2、动态库的制作和使用 fPIC产生位置无关码在将.c或者.cpp形成.o文件时需要加上-fPIC。要形成动态库必须加上-fPIC。 加上-fPIC同样可以形成.o文件。 形成动态库不需要用到其它指令gcc编译器就可以形成动态库只不过要加上-shared命令。 gcc -shared -o libmyc.so名字真正的库名要去掉lib和.so mystdio.o mymath.o所依赖的.o文件  但如果直接使用我们的这个动态库同样会和我们之前使用静态库一样发生链接错误。那么就同样要告诉编译器我们库的名字和所在的路径参考上面静态库路径的写法。 但是在ubuntu系统下你会发现动态库使用静态库的链接方法我们的动态库系统还是找不到此处特制ubuntu系统其它系统可能可以正常运行这时我们就只能将我们的动态库拷贝到系统的usr/lib目录下因为系统默认寻找库的时候回到/usr/lib目录下找。   此时在运行我们的程序就能正常运行了但要注意的是在指令的最后我们必须指明我们要链接的库因为这个库是我们自己导到系统中的需要我们自己指明链接。 三、将自己的库打包交给别人 假设在我当前目录下有libmyc.so动态库mymath.hmystdio.h两个头文件如果我想将这三个文件一起交给别人就可以把它们打包一起放在一个目录下一起压缩完再交给别人。 在这里我将指令全部放在makefile中 libmyc.so:mystdio.o mymath.ogcc -shared -o $ $^ .o:.cgcc -shared -c $ #mystdio.o:mystdio.c # gcc -c -fPIC $ -o $ #mymath.o:mymath.c # gcc -c -fPIC $ -o $ .PHONY:clean clean:rm -f *.o libmyc.so.PHONY:output output:mkdir -p ./user/mylib/mkdir -p ./user/Headfile/cp -rf libmyc.so ./user/mylib/cp -rf mystdio.h mymath.h ./user/Headfile/tar -czf user.tgz user四、运行别人给我的库文件和头文件  假设我自己收到了别人的压缩文件里面有头文件和库文件我想使用可以将头文件拷贝到usr/include目录下将库文件拷贝到usr/lib目录下最后指定链接哪一个库就可以使用了。 现在假设user目录是通过user.tgz解压得到的下面是user目录下的文件 将两个头文件拷贝到usr/include目录下编译器默认会到include目录下去寻找头文件将库文件拷贝到usr/lib目录下编译时指定库链接就能够运行了。当然了包含main函数的文件要自己写啦 如果今天我不将我的库文件和头文件拷贝到系统中则需要 gcc -o myexe test.c -I ./user/Headfile/-I 路径指明要去哪里找头文件 -L ./user/mylib/ -lmyc-L 路径 库名指明要去哪里找哪一个库 如果是这样去做我们会发现编译是能通过的但当我们要运行我们的可执行程序时会发现还是找不到库。因为-L只是告诉gcc编译器动态库在哪里但没有告诉系统动态库在哪里所以在要运行时系统会找不到动态库。 那如何解决呢 方法1添加环境变量LD_LIBRARY_PATH的搜索路径 LD_LIBRARY_PATH变量在你的系统中可能有也可能没有如果没有自行导入就行。 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/home/sxb/240402/user/mylib冒号后紧跟你的动态库所在的路径 但是因为命令行export是导入到系统内存级别的环境变量中下次登录系统又会从磁盘配置文件中重新读取环境变量所以如果要让你配置的这个LD_LIBRARY_PATH环境变量永久生效需要将其配置到.bashprofile文件或者.bashrc文件中。 方法2通过软链接方式 在usr/lib目录下建立一个与我们的动态库同名记住必须要同名的软链接文件这样修改的是系统文件是永久存在的。 方法3修改加载动态库的配置文件 在系统这个目录/etc/ld.so.conf.d/下ld:load加载so动态库conf配置文件d目录建立.conf后缀的配置文件文件里面只需要存放动态库的路径即可系统在寻找动态库的时候默认就会帮我们搜索该目录下的配置文件中所保存的路径。 在该目录下创建一个我们自己的.conf后缀的文件 然后只需要在该文件中保存我们的动态库所在的路径  然后需要让系统知道/etc/ld.so.conf.d/下的文件被修改过了需要执行ldconfig指令这样我们的可执行程序在运行时也能找到动态库了。
http://www.zqtcl.cn/news/220769/

相关文章:

  • 网站开发u盘128够吗网站建设是固定资产嘛
  • 网站域名备案信息wordpress搜索文章内容
  • 出口退税在哪个网站做怎么在一起做网站上拿货
  • 网站友链查询传到网站根目录
  • 网站服务器端口设置北京专业网络直播制作
  • 可以免费做演播的听书网站南京企业自助建站
  • 软件下载类型网站怎么做长沙官网优化技术
  • 药品网站订单源码外贸网站建设服务器
  • 深圳网站制作07551免费开发网站
  • 如何直接用jsp做网站不写servletwordpress模板 单栏
  • 长沙网站建设哪个公司好设计公司网站 唐山
  • 原创小说手机网站制作需要多少钱郴州seo外包
  • 深圳市大鹏建设局网站网站关键词没排名怎么办
  • 水果商城网站制作多少钱c#如何做公司网站
  • 国内做进口的电商网站网站建设的经验做法
  • 蚂蚁搬家公司官方网站免费网站软件制作
  • 搭建网站要用到的工具外链代发免费
  • 肥城网站建设流程oem中国代加工网
  • 到底建手机网站还是电脑网站网站视频怎么做
  • 小区网站建设前端手机网站
  • 做一个网站价格WordPress好看的404
  • 查看注册过的网站在线网站软件免费下载
  • 门户网站建设公司价位域名出售网站
  • 亿级流量网站架构自己制作一个网站
  • 企业网站seo成功案例天津网站建设制作品牌公司
  • 衡水做网站电话郏县建设局网站
  • 美工做网站尺寸多少钱怎么做网站免费的
  • 会计信息系统网站建设流程图手机网站图片宽度
  • 已备案网站增加域名wordpress 百度熊掌号
  • 网站建设维护课件ppt百度搜索一下百度