不要太深刻,並且正確編寫autoconf宏(無論如何,這是最好的)不要忘記configure.ac基本上是shell腳本由m4進行預處理。所以你可以直接編寫shell命令。
# prev. part of configure.ac
if test `uname -r |cut -d. -f1` -lt 2 then; echo "major v. error"; exit 1; fi
if test `uname -r |cut -d. -f2` -lt 6 then; echo "minor v. error"; exit 1; fi
if test `uname -r |cut -d. -f3` -lt 26 then; echo "micro error"; exit 1; fi
# ...
這只是一個想法,如果你想這樣做,避免爲autoconf編寫宏。這種選擇不好,但應該工作...
最好的方法是已經建議的:你應該檢查功能;所以說,在未來的內核中,timerfd不再可用......或者一些代碼被破壞了......自從測試版本以來,您將無法捕獲它。
編輯
由於用戶foof在評論中說,(與其他詞),它是檢查major.minor.micro一個天真的方式。例如。 3.5.1將會因爲5是6而失敗,但3.5.1會在2.6.26之後到來,所以(可能)它應該被接受。有很多技巧可以用來將x.y.z轉換爲一種表示形式,使每個版本都處於「自然」順序。例如。如果我們期望x,y或z不會比999大,我們可以做一些乘以1000000大小,1000小大小和1微的東西:因此,您可以將結果與2006026作爲Foof在評論中提出的建議進行比較, 。