1
如果它所依賴的ALSA庫的版本低於某個值,那麼我的Qt5程序需要使用一個枚舉,並且如果該版本大於或等於該值,則需要使用不同的枚舉。是否有可能讓qmake檢查該庫的版本並設置一個可以用來設置適當的枚舉表達式的定義?是否可以使用qmake來檢查庫的版本?
如果它所依賴的ALSA庫的版本低於某個值,那麼我的Qt5程序需要使用一個枚舉,並且如果該版本大於或等於該值,則需要使用不同的枚舉。是否有可能讓qmake檢查該庫的版本並設置一個可以用來設置適當的枚舉表達式的定義?是否可以使用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;
}
真棒。謝謝你的幫助。 –