是否可以使用 qmake 检查库的版本?
Is it possible to use qmake to check the version of a library?
如果我的Qt5程序所依赖的ALSA库的版本低于某个值,我的Qt5程序需要使用一个枚举,如果版本大于或等于该值,则需要使用一个不同的枚举。 qmake 是否可以检查该库的版本并设置一个我可以用来设置正确枚举表达式的定义?
有可能但没有必要。你的问题是另一个 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;
}
如果我的Qt5程序所依赖的ALSA库的版本低于某个值,我的Qt5程序需要使用一个枚举,如果版本大于或等于该值,则需要使用一个不同的枚举。 qmake 是否可以检查该库的版本并设置一个我可以用来设置正确枚举表达式的定义?
有可能但没有必要。你的问题是另一个 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;
}