我最近遇到了一個庫,它在公共頭文件中使用了像HAVE_FEATUREFOO
這樣的變量。如何在公共頭文件中正確使用`AC_DEFINE`和`AC_DEFINE_UNQUOTED`定義的變量?
它還包括它們的聲明#include "config.h"
。這些聲明也用於結構聲明中,並有條件地刪除結構成員。用於庫構建的值的不一致性以及依賴程序的構建將導致內存損壞。
因此,使用該庫和它的頭可能導致以下結果:
#include "config.h"
失敗,- 或在運行時內存損壞。
我對自動工具非常陌生,但經過我發現的一些研究後,他們使用AC_DEFINE
or AC_DEFINE_UNQUOTED
進行了定義。而且,config.h
使用AC_CONFIG_HEADERS
生成。
隨着進一步的研究,我發現include_HEADERS
,它安裝標題。並且,標題config.h
正確安裝,如果它被添加到列表中。
是不是正確的做法,通過AC_CONFIG_HEADERS
安裝config.h
自動工具生成的頭文件?