在Windows中使用pkg-config查找库

时间:2012-05-30 05:05:13

标签: windows waf pkg-config

我正在尝试使用pkg-config

在windows(msvc)中找到gstreamer lib
  
    

pkg-config gstreamer-0.10 --cflags --libs

  

但是我得到了这样的结果

Package gstreamer-0.10 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gstreamer-0.10.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gstreamer-0.10' found

安装库时会创建一个.pc like(通过使用RPM,deb或其他二进制打包系统或从源代码编译自动生成。)我在gstreamer中找不到.pc文件目录。

我应该创建一个包含所有必要细节的.pc文件。

prefix=C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7
exec_prefix=${prefix}
libdir=${exec_prefix}\lib
includedir=${prefix}\sdk\include\gstreamer-0.10
toolsdir=${exec_prefix}\bin
pluginsdir=${exec_prefix}\lib\gstreamer-0.10
datarootdir=${prefix}\share
datadir=${datarootdir}
girdir=${datadir}/gir-1.0
typelibdir=${libdir}/girepository-1.0

Name: GStreamer
Description: Streaming media framework
Requires: glib-2.0, gobject-2.0, gmodule-no-export-2.0, gthread-2.0, libxml-2.0
Version: 0.10.35
Libs: -L${libdir} -lgstreamer-0.10
Cflags: -I${includedir}

或者还有其他方法可以做到这一点,还是我错过了什么?

希望你能帮忙。谢谢你花时间阅读问题。

我这样做是为了找到解决方案为什么我在我的waf配置gstreamer中收到not found消息

conf.check_cfg(atleast_pkgconfig_version='0.0.0') 
conf.check_cfg(package='gstreamer-0.10', uselib_store='GSTREAMER', args='--cflags --libs', mandatory=True)

代码在linux中运行,也可以在Windows中运行。


稍后添加

很好地制作.pc并将.pc目录的路径设置为PKG_CONFIG_PATH环境变量就可以了。这很难做到。

退房this。谢谢阅读和帮助我.. :)

1 个答案:

答案 0 :(得分:3)

pkg-config是一个很棒的工具,但不幸的是在Windows上(与UNIX相比),没有标准的可执行文件PATH或PKG_CONFIG_PATH。

虽然你可以恢复定义选项--with-gstreamer-include-dir ... --with-gstreamer-lib-dir ...并避免pkg-config依赖,你也可以使用--pkgconfig- exe c:\ path \ to \ pkg-config.exe --pkgconfig-path c:\ path \ to \ gstreamer; c:\ path \ to \ otherlib,这将有助于拥有一个好看的wscript,尤其是在使用时很多pkg-config libs。

典型的Win32用户可能在直接设置PKG_CONFIG_PATH和PATH时遇到问题,或者遇到隐藏的“未找到”错误,然后检查config.log。

如果你确实添加了特定于Windows的pkg-config选项,那么每个人都可能会感兴趣。 您可以编写一个pkgconfig_opts工具并将其作为waf额外提交。