是否可以使用qmake检查库的版本?

时间:2016-08-19 18:12:06

标签: c++ qt alsa

如果其依赖的ALSA库的版本小于某个值,则我的Qt5程序需要使用一个枚举,如果版本大于或等于该值,则需要使用不同的枚举。 qmake是否可以检查该库的版本并设置可用于设置正确枚举表达式的定义?

1 个答案:

答案 0 :(得分:1)

可能但不必要。你的问题是另一个X-Y问题:你想要的只是检查ALSA库的版本。 qmake在其中的任何地方都没有形象,对吧?

你想要的只是:

#include <alsa/version.h>

#if SND_LIB_VERSION >= 0x010005
// 1.0.5 and later
enum { FOO = 42 };
#else
// 1.0.4 and earlier
enum { FOO = 101010 };
#endif

更好的是,在现代C ++中,您可以确保您的代码不会有点腐烂:

int constexpr kFoo() {
  return (SND_LIB_VERSION >= 0x010005) ? 42 : 101010;
}