2013-07-26 22 views
1

我知道如何檢查configure.ac文件中的函數,庫和模塊。但我不知道如何檢查是否存在僅包含標頭的庫。檢查autoconf中僅標題的庫

假設我想用C++編寫一個項目,並且我想使用一個頭文件庫,例如,一個C++模板。例如,Boost哈希。它是stost :: hash的擴展。

什麼是檢查configure.ac的標準方法是否安裝了Boost Hash?我查找了一個答案,但是我發現的只是檢查特定的頭文件或庫,而我需要的是檢查是否存在頭文件庫

有沒有做到在Autoconf的一種標準的方式,或者我需要手動檢查我需要的頭,一個接一個?

我發現這考驗Boost庫的存在幾個M4宏,但這是具體到升壓的解決方案。我如何處理其他頭文件庫,就像我自己寫的那樣?

回答

3

大多它取決於你的需要......但是,檢查每一個頭文件是不是一個好主意(因爲,在提升的情況下,可以採取過長...時間:)。

如果你的軟件需要這個庫,你可以檢查最重要的頭文件。你甚至可以嘗試構建一個示例程序,只是爲了檢查一切看起來不錯。例如,它可能會打印並只打印庫的一個版本(如果需要進一步檢查)...如果發生故障,則必須發出錯誤。如果這個庫是可選的,你可以發出一個警告/信息/無論如何,並在你生成的config.h文件中定義HAS_BLAH_BLAH,然後在#include之前檢查此定義 - 但無論如何,嘗試構建最簡單的示例 - 它比檢查爲所有圖書館的標題存在...

+0

非常好的想法...但它可能是值得的編寫一個通用的宏,參數。或者允許頭文件庫以類似於pkgconfig文件的方式提供一個接口。我會盡力 :-) – cfa45ca55111016ee9269f0a52e771