- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
如何查看gtk版本pkg使用
pkg-config详解一、编译和连接
一般来说,如果库的头文件不在/usr/include目录中,那么在编译的时候需要用-I参数指定
其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用-I参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用-L参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的使用带来麻烦。
为了解决编译和连接界面不统一的问题,人们找到了一些解决办法。其基本思想就是:事先把库的位置信息等保存起来,需要的时候再通过特定的工具将其中有用的信息提取出来供编译和连接使用。这样,就可以做到编译和连接界面的一致性。其中,目前最为常用的库信息提取工具就是下面介绍的pkg-config。
pkg-config是通过库提供的一个.pc文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。这些信息可以通过pkg-config提供的参数单独提取出来直接供编译器和连接器使用。
Thepkgconfigpackagecontainstoolsforpassingtheincludepathand/orlibrarypathstobuildtoolsduringthemakefileexecution.
pkg-configisafunctionthatreturnsmetainformationforthespecifiedlibrary.
ThedefaultsettingforPKG_CONFIG_PATHis/usr/lib/pkgconfigbecauseoftheprefixweusetoinstallpkgconfig.YoumayaddtoPKG_CONFIG_PATHbyexportingadditionalpathsonyoursystemwherepkgconfigfilesareinstalled.NotethatPKG_CONFIG_PATHisonlyneededwhencompilingpackages,notduringrun-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}/include
glib_genmarshal=glib-genmarshalgobject_query=gobject-queryglib_mkenums=glib-mkenums
Name:GLibDescription:CUtilityLibraryVersion:2.12.13Libs:-L${libdir}-lglib-2.0Cflags:-I${includedir}/glib-2.0-I${libdir}/glib-2.0/include
使用pkg-config的--cflags参数可以给出在编译时所需要的选项,而--libs参数可以给出连接时的选项。例如,假设一个sample.c的程序用到了Glib库,就可以这样编译:
$gcc-c`pkg-config--cflagsglib-2.0`sample.c
然后这样连接:
$gccsample.o-osample`pkg-config--libsglib-2.0`
或者上面两步也可以合并为以下一步:
$gccsample.c-osample`pkg-config--cflags--libsglib-2.0`
可以看到:由于使用了pkg-config工具来获得库的选项,所以不论库安装在什么目录下,都可以使用相同的编译和连接命令,带来了编译和连接界面的统一。
使用pkg-config工具提取库的编译和连接参数有两个基本的前提:
1.库本身在安装的时候必须提供一个相应的.pc文件。不这样做的库说明
您可能关注的文档
- 仁爱英语七年级下册导学案合集.docx
- 仁爱英语七年级下册过去式及练习.docx
- 仁爱英语七年级下册知识点重点.docx
- 仁爱英语七年级下册总复习资料.docx
- 仁爱英语七年级下册作文归纳及范文.docx
- 仁爱英语七年级下一般现在时与现在进行时.docx
- 仁爱英语新九年级上册unit 1 topic 1.docx
- 认识钟表测试题.docx
- 任务驱动教学法案例.docx
- 任务三发酵罐实消接种.docx
- 2024年04月福建中医药大学及附属医院2024年公开招考34名工作人员笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月浙江绍兴市科技创新创业服务中心招考聘用编外工作人员笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月湖北宜昌市事业单位进校园(重庆大学站)人才引进招考聘用30人笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月福建宁德师范学院招考聘用25人笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月辽宁省气象部门事业单位招考聘用13人笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月湖南邵阳职业技术学院人才引进10人笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月甘肃酒泉市医疗卫生系统招考聘用64人笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月陕西咸阳市泾河新城第四小学教师招考聘用笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月皖南医学院第二附属医院编外工作人员招考聘用51人笔试历年典型考题及全考点剖析附答案解析.docx
- 2024年04月湖南省溆浦县2024年公开招考96名事业单位工作人员笔试历年典型考题及全考点剖析附答案解析.docx
文档评论(0)