2013-02-16 32 views
0

我在想GNU Autotools處理所需頭文件的最佳實踐方案。這是從我的configure.acGNU Autotools - 如何處理必需但可能丟失的標題?

AC_CHECK_HEADERS_ONCE(argp.h) 

一行如果argp.h缺少一個系統上,然後配置將剛剛宣佈

... 
checking for argp.h... no 
... 

但無能爲力。當然,程序將無法編譯,因爲預期的頭文件不存在,並且將包含包含在#ifdef HAVE_ARGP_H指令中,並且可能會添加一個#else #error [...]構造會做我想做的事,但它看起來相當乏味。

有沒有一種很好的方法來錯誤地出現在丟失但需要的標題上配置時間而不是編譯時間?

感謝, 安迪

回答

1

替換爲您的通話AC_CHECK_HEADERS_ONCE

AC_CHECK_HEADER([argp.h], [], AC_MSG_ERROR([cannot find required header argp.h])) 

這種變異不會定義HAVE_ARGP_H,但因爲你的代碼要求無條件頭,你不需要這個反正。該錯誤會停止配置過程。

+0

正是我所期待的。非常感謝你! – 2013-02-16 08:03:48