0

私のconfigure.acのコードは次のとおりです。

THIS="h5cc"
AC_MSG_WARN([$THIS])
AC_MSG_WARN(m4_bmatch([h5pcc],
         [h5pcc], [parallel],
         [h5cc], [serial],
         [neither]
         ))
AC_MSG_ERROR(m4_bmatch([$THIS],
         [h5pcc], [parallel],
         [h5cc], [serial],
         [neither]
         ))

Iautoconfと thenconfigureの結果は次のようになります。

configure: WARNING: h5cc
configure: WARNING: parallel
configure: error: neither

私が知る限り、それは起こるべきではありませんよね?私は何が欠けていますか?

4

1 に答える 1

2

構成内に M4 コードを混在させていますが、m4 は展開前 (つまり を実行するときautoconf) にのみ実行THIS=h5ccされますが、 はシェルによって実行されるシェル コンストラクト ( を実行するとき./configure) です。

したがって、m4_bmatch見えるものは$THIS実際にはどちらでもないリテラルです。

短いバージョンm4_*です。設定時に変更したいものには関数を使用しないでください。

于 2016-06-15T08:01:40.367 に答える