你是否经常用到一个第3方的库的时候 经常不知道他的头文件在哪里库 文件在哪里,每个发行版本安装的地方都可能不太一样 这时候你就需要象pkgconfig这样的工具:
首先为你要安装的库写一个.pc文件 如 lua.pc
# lua.pc -- pkg-config data for Lua
# vars from install Makefile
# grep '^V=' ../Makefile
V= 5.1
# grep '^R=' ../Makefile
R= 5.1.2
# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
prefix= /usr/local
INSTALL_BIN= ${prefix}/bin
INSTALL_INC= ${prefix}/include
INSTALL_LIB= ${prefix}/lib
INSTALL_MAN= ${prefix}/man/man1
INSTALL_LMOD= ${prefix}/share/lua/${V}
INSTALL_CMOD= ${prefix}/lib/lua/${V}
# canonical vars
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm
Cflags: -I${includedir}
# (end of lua.pc)
放在/usr/lib/pkgconfig或者 /usr/local/lib/pkgconfig里面.
然后在你的工程里面写上
gcc -o you.out you.c `pkg-config "lua" --libs --cflags`
大功告成。Note: `pkg-config "lua" --libs --cflags` 的输出结果如 -I/usr/local/include -L/usr/local/lib -llua -lm
首先为你要安装的库写一个.pc文件 如 lua.pc
# lua.pc -- pkg-config data for Lua
# vars from install Makefile
# grep '^V=' ../Makefile
V= 5.1
# grep '^R=' ../Makefile
R= 5.1.2
# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
prefix= /usr/local
INSTALL_BIN= ${prefix}/bin
INSTALL_INC= ${prefix}/include
INSTALL_LIB= ${prefix}/lib
INSTALL_MAN= ${prefix}/man/man1
INSTALL_LMOD= ${prefix}/share/lua/${V}
INSTALL_CMOD= ${prefix}/lib/lua/${V}
# canonical vars
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm
Cflags: -I${includedir}
# (end of lua.pc)
放在/usr/lib/pkgconfig或者 /usr/local/lib/pkgconfig里面.
然后在你的工程里面写上
gcc -o you.out you.c `pkg-config "lua" --libs --cflags`
大功告成。Note: `pkg-config "lua" --libs --cflags` 的输出结果如 -I/usr/local/include -L/usr/local/lib -llua -lm
本文介绍如何通过创建.pkgconfig文件来简化第三方库的编译配置过程。以Lua为例,展示了如何编写Lua的.pkgconfig文件,并将其放置在系统的适当位置。最后通过一个简单的gcc命令示例说明了如何利用pkgconfig工具进行编译。
2454

被折叠的 条评论
为什么被折叠?



