- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下库的设置:ld.so.conf 文件与PKG_CONFIG_PATH变量
一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的 不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的使用带来麻烦。为了解决编译和连接界面不统一的问题,人们找到了一些解决办法。其基本思想就是:事先把库的位置信息等保存起来,需要的时候再通过特定的工具将其中有用的 信息提取出来供编译和连接使用。这样,就可以做到编译和连接界面的一致性。其中,目前最为常用的库信息提取工具就是下面介绍的 pkg-config。pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和连接器使用。The pkgconfig package contains tools for passing the include path and/or library paths to build tools during the make file execution.pkg-config is a function that returns meta information for the specified library.The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig because of the prefix we use to install pkgconfig. You may add to PKG_CONFIG_PATH by exporting additional paths on your system where pkgconfig files are installed. Note that PKG_CONFIG_PATH is only needed when compiling packages, not during run-time.??? ??? 在默认情况下,每个支持 pkg-config 的库对应的 .pc 文件在安装后都位于安装目录中的 lib/pkgconfig 目录下。例如,我们在上面已经将 Glib 安装在 /opt/gtk 目录下了,那么这个 Glib 库对应的 .pc 文件是 /opt/gtk/lib/pkgconfig 目录下一个叫 glib-2.0.pc 的文件:prefix=/opt/gtk/exec_prefix=${prefix}libdir=${exec_prefix}/libincludedir=${prefix}/includeglib_genmarshal=glib-genmarshalgobject_query=gobject-queryglib_mkenums=glib-mkenumsName: GLibDescription: C Utility LibraryVersion: 2.12.13Libs: -L${libdir} -lglib-2.0?Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include???? ??? 使用 pkg-config 的 --cflags 参数可以给出在编译时所需要的选项,而 --libs 参数可以给出连接时的选项。例如,假设一个 sample.c 的程序用到了 Glib 库,就可以这样编译:$ gcc -c `pkg-config --cflags glib-2.0` sample.c然后这样连接:$ gcc sample.o -o sample `pkg-config --libs glib-2.0`或者上面两步也可以合并为以下一步:$ gcc sample.c -o sample `pkg-config --cflags --libs glib-2.0`可以看到:由于使用了 pkg-config 工具来获得库的选项,所以不论库安装在什么目录下,都可以使用相同的编译和连接命令,带来了编译和连接界面的统一。使用 pkg-config 工具提取库的编译和连接参数有两个基本的前提:库本身在安装的时候必须提供一个相应的 .pc 文件。不这样做的库说明不支持 pkg-config 工具的使用。pkg-config 必须知道要到哪里去寻找此 .pc 文件。GTK+ 及其依赖库支持使用
您可能关注的文档
- 考研英语之语法练习题(含详细题释).doc
- 2017高三英语12月适应性练习A卷.doc
- 初升高(九年级测试).doc
- 每日一读周二篇诗歌散文精选.doc
- Then Sun Ch’uan.doc
- 大学英语课程教学要求 较高要求词汇1081个.doc
- 2009年6月英语四级考试真题及答案.doc
- 《德伯家的苔丝》之苔丝的悲剧透视.doc
- Unit 4 单词词组.docx
- Tangled script 长发公主 英文台词 整理版.doc
- 护理学相关知识复习测试卷共三套.doc
- 护理学相关知识复习试题含答案(3套).doc
- 2025届高考语文复习:补写句子 课件.pptx
- 气压带和风带对气候的影响(第1课时)(教学设计).docx
- 气压带和风带对气候影响教学设计2024-2025学年高中地理人教版(2019)选择性必修1.docx
- 《故都的秋》课件 2024-2025学年统编版高中语文必修上册.pptx
- 《屈原列传》课件 2024-2025学年统编版高中语文选择性必修中册.pptx
- 《巫溪家乡文化》课件-2024-2025学年高一语文同步备课课件(统编版必修上册).pptx
- 《苏武传》课件 2023-2024学年统编版高中语文选择性必修中册.pptx
- 郑州中控ZKTime8.3 WEB考勤软件培训文档.pptx
最近下载
- 海淀区2024-2025学年第一学期期中高三英语试题及答案.pdf VIP
- 18.《我的白鸽》教案 2024-2025学年七年级语文上册寓教于乐大讲堂(统编2024版).docx VIP
- 乘法的初步认识说课稿.docx VIP
- 新媒体营销实务(第2版)全套教学课件.pptx
- 职能科室对医技科室医疗质量督查记录表(检验科、放射科、超声科、功能科、内镜室).pdf VIP
- 膝关节置换术后健康宣教.pptx
- 五(上)语文新版课课贴2024秋.pdf
- GA∕T 1105-2013- 信息安全技术 终端接入控制产品安全技术要求.pdf
- 广州数控GSK980TC3系列 编程及操作手册.pdf
- 道 法+认识生命(课件) 2024-2025学年七年级道德与法治上册(统编版2024).pptx VIP
文档评论(0)