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

做网站代码第一不对外贸易企业网站建设流程

做网站代码第一不,对外贸易企业网站建设流程,建设企业网站登录901,wordpress 头条主题交叉编译的时候不能使用本地(i686机器#xff0c;即PC机器#xff0c;研发机器)机器上的库#xff0c;但是在做编译链接的时候默认的是使用本地库#xff0c;即/usr/lib,/lib两个目录。因此#xff0c;在交叉编译的时候#xff0c;要采取一些方法使得在编译链接的时候找到…交叉编译的时候不能使用本地(i686机器即PC机器研发机器)机器上的库但是在做编译链接的时候默认的是使用本地库即/usr/lib,/lib两个目录。因此在交叉编译的时候要采取一些方法使得在编译链接的时候找到需要的库。首先要知道编译的时候只需要头文档真正实际的库文档在链接的时候用到。 (这是我的理解假如有不对的地方敬请网上各位大侠指教) 然后讲讲如何在交叉编译链接的时候找到需要的库。(1)、交叉编译时候直接使用-L和-I参数指定搜索非标准的库文档和头文档的路径。例如arm-linux-gcc test.c -L/usr/local/arm/2.95.3/arm-linux/lib -I/usr/local/arm/2.95.3/arm-linux/include(2)、使用ld.so.conf文档将用到的库所在文档目录添加到此文档中然后使用ldconfig命令刷新缓存。(3)、使用如下命令$ export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/usr/local/arm/2.95.3/arm-linux-lib参见《ld.so.conf 文档和PKG_CONFIG_PATH变量》这篇文章。通过环境变量LD_LIBRARY_PATH指定动态库搜索路径()。通过设定环境变量LD_LIBRARY_PATH也可以指定动态库搜索路径。当通过该环境变量指定多个动态库搜索路径时路径之间用冒号\\分隔。不过LD_LIBRARY_PATH的设定作用是全局的过多的使用可能会影响到其他应用程序的运行所以多用在调试。(LD_LIBRARY_PATH的缺陷和使用准则可以参考《Why LD_LIBRARY_PATH is bad》 )。通常情况下推荐还是使用gcc的-R或-rpath选项来在编译时就指定库的查找路径并且该库的路径信息保存在可执行文件中运行时它会直接到该路 径查找库避免了使用LD_LIBRARY_PATH环境变量查找。(4)、交叉编译时使用软件的configure参数。例如我编译minigui-1.3.3使用如下配置#!/bin/bashrm -f config.cache config.status./configure --buildi686-linux --hostarm-linux --targetarm-linux \\CFLAGS-I/usr/local/arm/2.95.3/arm-linux/include \\LDFLAGS-L/usr/local/arm/2.95.3/arm-linux/lib \\--prefix/usr/local/arm/2.95.3/arm-linux \\--enable-lite \\--disable-galqvfb \\--disable-qvfbial \\--disable-vbfsupport \\--disable-ttfsupport \\--disable-type1support \\--disable-imegb2312py \\--enable-extfullgif \\--enable-extskin \\--disable-videoqvfb \\--disable-videoecoslcd这里我配置了CFLAGS和LDFLAGS参数这样一来我就不用去修改每个Makefile里-L和-I参数了也不用再去配置LD_LIBRARY_PATH或改写ld.so.conf文档了。Linux下动态库使用小结1. 静态库和动态库的基本概念静态库是在可执行程序连接时就已经加入到执行码中在物理上成为执行程序的一部分使用静态库编译的程序运行时无需该库文件支持哪里都可以用但是生成的可执行文件较大。动态库是在可执行程序启动时加载到执行程序中可以被多个可执行程序共享使用。使用动态库编译生成的程序相对较小但运行时需要库文件支持如果机器里没有这些库文件就不能运行。2 如何使用动态库如何程序在连接时使用了共享库就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录然后按照/etc/ld.so.conf里面的配置搜索绝对路径。同时Linux也提供了环境变量LD_LIBRARY_PATH供用户选择使用用户可以通过设定它来查找除默认路径之外的其他路径如查找/work/lib路径,你可以在/etc/rc.d/rc.local或其他系统启动后即可执行到的脚本添加如下语句LD_LIBRARY_PATH /work/lib:$(LD_LIBRARY_PATH)。并且LD_LIBRARY_PATH路径优先于系统默认路径之前查找(详细参考《使用LD_LIBRARY_PATH》)。不过LD_LIBRARY_PATH的设定作用是全局的过多的使用可能会影响到其他应用程序的运行所以多用在调试。(LD_LIBRARY_PATH的缺陷和使用准则可以参考《Why LD_LIBRARY_PATH is bad》 )。通常情况下推荐还是使用gcc的-R或-rpath选项来在编译时就指定库的查找路径并且该库的路径信息保存在可执行文件中运行时它会直接到该路径查找库避免了使用LD_LIBRARY_PATH环境变量查找。3库的链接时路径和运行时路径现代连接器在处理动态库时将链接时路径(Link-time path)和运行时路径(Run-time path)分开,用户可以通过-L指定连接时库的路径通过-R(或-rpath)指定程序运行时库的路径大大提高了库应用的灵活性。比如我们做嵌入式移植时#arm-linux-gcc $(CFLAGS) –o target –L/work/lib/zlib/ -llibz-1.2.3 (work/lib/zlib下是交叉编译好的zlib库)将target编译好后我们只要把zlib库拷贝到开发板的系统默认路径下即可。或者通过-rpath(或-R )、LD_LIBRARY_PATH指定查找路径。小问题1编译时的-L选项是否影响LD_LIBRARY_PATH的值举一个实例当前文件夹结构如下test.c tools/tool下有tool.c tool.h my_err.h 以及由此生成的libtool.sotool下编译生成库文件gcc -Wall -g -shared -o tool.so tool.c在当前文件夹引用gcc -Wall -g –o test.c -Ltools -ltool编译不报错但是运行加载的时候就出现cannot open shared object file。如果将该库文件拷贝到/usr/lib下就没有错误正常运行。说明编译时的-L选项并不影响环境变量LD_LIBRARY_PATH-L只是指定了程序编译连接时库的路径并不影响程序执行时库的路径系统还是会到默认路径下查找该程序所需要的库。原文
http://www.pierceye.com/news/269087/

相关文章:

  • 06628 网页制作与网站建设深圳建筑人才网为什么电脑打不开
  • 企业网站建设方讯快速建站代理
  • 全面的基础微网站开发wordpress首页插件
  • 陕西省住房和城乡建设厅网站上怎么打印证书中盛客户管理软件
  • html网站标题怎么做的国外免费推广平台有哪些
  • 网站制作com cn域名有什么区别网站制作哪家好
  • 平湖网站设计北京广告公司名录
  • 不良网站进入窗口免费正能量安全的南昌网站制作
  • 商品交换电子商务网站开发网站首页制作公司
  • wordpress全站备份建设网站和推广
  • 广州市官网网站建设哪家好上海营销型网站建设公司
  • 江山网站制作瑞安自适应网站建设
  • 生意网官方网站高端建设网站
  • 公司网站建设南宁腾讯企业邮箱登录入口手机版
  • 简历网站推荐做网站公司是干什么的
  • 网站备案率是什么会展相关app和网站的建设情况
  • 南京网站设计网站建设上海网站域名备案处
  • 做网站市场分析三视觉平面设计网
  • 网站建设中++模板企业网站部署计划
  • 房产部门成立网站wordpress站内搜索次数
  • 网站建设合同管辖地广州敏城建设工程有限公司网站
  • 班级网站主页设计模板购买网站域名空间
  • 做响应式网站最大宽度景观设计公司起名
  • 有小广告的网站适合40岁女人的培训班
  • html5网站建设有什么网站用名字做图片
  • 合肥珍岛公司做网站推广怎么样关键词排名优化如何
  • 做讲课ppt的网站郑州市建设局官方网站
  • 邢台集团网站建设报价免费推广网站有哪些
  • 龙华网站建设营销推广广东东莞区号
  • 徐汇网站开发培训企业建网站报价