【问题标题】:Is it possible to use qmake to check the version of a library?是否可以使用 qmake 来检查库的版本?
【发布时间】:2016-12-26 23:43:35
【问题描述】:

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

【问题讨论】:

    标签: c++ qt alsa


    【解决方案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;
    }
    

    【讨论】:

    • 太棒了。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多