c - 根据检测到的库版本定义

标签 c waf

如何检查库版本,如果它低于某个版本(即缺少功能 X),则设置一个定义?

目前我有这段代码,它检查 libsoup 及其版本。它似乎有效。

conf.check_cfg(package='libsoup-2.4', mandatory=True)
conf.check_cfg(package='libsoup-2.4', uselib_store='SOUP', msg='Checking for \'libsoup\' < 2.40', args=['libsoup-2.4 < 2.40', '--cflags', '--libs'], mandatory=False, define_variable={'OLD_SOUP':1,'FRESH_SOUP':0})
conf.check_cfg(package='libsoup-2.4', uselib_store='SOUP', msg='Checking for \'libsoup\' >= 2.40', args=['libsoup-2.4 >= 2.40', '--cflags', '--libs'], mandatory=False, define_variable={'OLD_SOUP':0,'FRESH_SOUP':1})

做同样的工作是否有更简单和更短的方法,即使用 check_cc

最佳答案

我结束了这个,我只是忽略了 check_cfg 的许多选项之一

ctx.check_cfg(package='libsoup-2.4', uselib_store='SOUP', args=['--cflags', '--libs'], mandatory=True)
ctx.define ('FRESH_SOUP', (ctx.check_cfg(modversion='libsoup-2.4') >= '2.40'))

http://waf.googlecode.com/svn/docs/apidocs/tools/c_config.html#waflib.Tools.c_config.check_cfg

关于c - 根据检测到的库版本定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363497/

相关文章:

不能包含这两个文件(WinSock2、Windows.h)

c - O_APPEND 的使用

c++ - 如何创建独立于平台的宏来包装编译器扩展?

waf - 自定义waf任务既不运行也不找源

php - 如何将神经网络从 C 语言转换为 PHP

c++ - 生成字符串中的所有字谜 C++

c - 为什么 int 指针的大小与 int 数组的大小不同?

windows - 如何在 win32 上调试文件系统 "access denied"错误?

c++ - 为什么我运行 node-waf build 后有一个 .lock-wscript 文件

带有 waf 的 C++ 头文件库