2016-08-19 8 views
1

Qt5プログラムは、依存するALSAライブラリのバージョンが特定の値より小さい場合は1つの列挙型を使用する必要があり、バージョンがその値以上の場合は別の列挙型を使用する必要があります。 qmakeがそのライブラリのバージョンをチェックし、適切なenum式を設定するために使用できる定義を設定することは可能ですか?qmakeを使ってライブラリのバージョンを確認することはできますか?

答えて

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; 
} 
+0

恐ろしいです。ご協力いただきありがとうございます。 –

関連する問題