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