忍者ブログ

素人翻訳

適当に翻訳する。

ac_nonexistent.h とは?

出典:What is "ac_nonexistent.h"? - 題:ac_nonexistent.h とは何なのか? -
質問者:杨勇勇 - 2011年3月7日月曜日 19:42:20 +0800 (CST)

皆さん、こんにちは。
autoconf の勉強を始めたばかりですが、最近「auto」系機能を使ったごくごく簡単なコードを書いています。このコードはうまく動いてくれました。(Makefile 生成も含めて全てうまくいきました。)しかし、マクロ AC_CHECK_HEADERS([...]) を加えた時に問題が起こりました。シェル・スクリプト configure は問題なく生成できたので、./configure を実行し、成功しました。しかし、config.log を確認すると、以下のエラーがありました。

"error: ac_nonexistent.h, no such file or directory."
...
"Compilation terminated."

幸い、connfig.log に複数回登場するこのエラー以外にエラーはありませんでした。

同じコードを Fedora 14 と RHEL 6.0 の両方で試したところ、同じ現象が発生しました。

何が起きているのか、ご教示いただきたい。
ある人曰く、ac_nonexistent.h のエラーは、開発者が AC_CHECK_HEADERS() マクロを用いており、且つ、対象ヘッダファイルが存在する場合に生じるものだということですが、これは本当でしょうか。

お願いします。

Eric Blake - 2011年3月7日 月曜日 07:44:59 -0700

?????? さんの 2011年3月7日 午前 04:42 の投稿について。

皆さん、こんにちは。
autoconf の勉強を始めたばかりですが、最近「auto」系機能を使ったごくごく簡単なコードを書いています。このコードはうまく動いてくれました。(Makefile 生成も含めて全てうまくいきました。)しかし、マクロ AC_CHECK_HEADERS([...]) を加えた時に問題が起こりました。シェル・スクリプト configure は問題なく生成できたので、./configure を実行し、成功しました。しかし、config.log を確認すると、以下のエラーがありました。

"error: ac_nonexistent.h, no such file or directory."
...
"Compilation terminated."

これは悪いことではありません。そのコンパイル・エラーは次の事を検証するために必要とされています。即ち、存在しないヘッダを参照している不完全なソースコードがコンパイラに正しく検出され、排除されているかを検証するためです。足りないヘッダをコンパイラがどのように検出しているのか、これを把握していることが後の AC_CHECK_HEADERS の試験で重要になります。AC_CHECK_HEADERS はどのヘッダが存在するかを調べます。

蹉跌したコンパイルの全てがバグというわけではありません。

Ralf Wildenhues - 2011年3月7日 月曜日 20:10:48 +0100

こんにちは。名前の表示がおかしいのは許してください。

Eric Blake の 2011年3月7日月曜日 03:44CET の投稿について。

������ さんの 2011年3月7日 午前 04:42 の投稿について。

"error: ac_nonexistent.h, no such file or directory."
...
"Compilation terminated."

幸い、connfig.log に複数回登場するこのエラー以外にエラーはありませんでした。

これは悪いことではありません。そのコンパイル・エラーは次の事を検証するために必要とされています。即ち、存在しないヘッダを参照している不完全なソースコードがコンパイラに正しく検出され、排除されているかを検証するためです。足りないヘッダをコンパイラがどのように検出しているのか、これを把握していることが後の AC_CHECK_HEADERS の試験で重要になります。AC_CHECK_HEADERS はどのヘッダが存在するかを調べます。

蹉跌したコンパイルの全てがバグというわけではありません。

AC_*_IFELSE は望ましい結果がそれとわかるように示しておくべきではないでしょうか。そうすれば config.log では予期せぬ結果だけを書き出すことができるはずです。

それでは。Ralf 。

NightStrike - 2011年3月9日 水曜日 15:32:58 -0500

Ralf Wildenhues <address@hidden> さんの 2011年3月7日月曜日午後 2:10 の投稿について。

こんにちは。名前の表示がおかしいのは許してください。

Eric Blake の 2011年3月7日月曜日 03:44CET の投稿について。

СоУВУВ さんの 2011年3月7日 午前 04:42 の投稿について。

"error: ac_nonexistent.h, no such file or directory."
...
"Compilation terminated."

幸い、connfig.log に複数回登場するこのエラー以外にエラーはありませんでした。

これは悪いことではありません。そのコンパイル・エラーは次の事を検証するために必要とされています。即ち、存在しないヘッダを参照している不完全なソースコードがコンパイラに正しく検出され、排除されているかを検証するためです。足りないヘッダをコンパイラがどのように検出しているのか、これを把握していることが後の AC_CHECK_HEADERS の試験で重要になります。AC_CHECK_HEADERS はどのヘッダが存在するかを調べます。

蹉跌したコンパイルの全てがバグというわけではありません。

AC_*_IFELSE は望ましい結果がそれとわかるように示しておくべきではないでしょうか。そうすれば config.log では予期せぬ結果だけを書き出すことができるはずです。

そのような変更があれば嬉しいですね。

PR

pango、backend の問題による構築失敗

出典:Pango installation fails due to problems with backends
Bloehdian - 2013年1月30日 午後 01:34

背後実行プログラムに関する問題によって pango のインストールが失敗する。
皆さん、こんにちは。
RHEL(Red Hat Enterprise Linux) に pango をインストールするとき、configure の段階で以下のエラーが出る。

checking for HARFBUZZ... no
no
checking for CoreText availability... no
checking for CAIRO... yes
checking which cairo font backends could be used... none
configure: Disabling cairo support
configure: error: *** Could not enable any backends.
*** Must have at least one backend to build Pango.

config.log を見ると、どうやら quartz-cairo-font パッケージを欠いていることが原因らしい。

configure:18305: checking for CAIRO
configure:18312: $PKG_CONFIG --exists --print-errors "cairo >= $cairo_required"
configure:18315: $? = 0
configure:18329: $PKG_CONFIG --exists --print-errors "cairo >= $cairo_required"
configure:18332: $? = 0
configure:18372: result: yes
configure:18428: $PKG_CONFIG --exists --print-errors "cairo-quartz-font >= $cairo_required"
Package cairo-quartz-font was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo-quartz-font.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo-quartz-font' found
configure:18431: $? = 1
configure:18446: checking which cairo font backends could be used
configure:18452: result: none
configure:18454: Disabling cairo support
configure:18605: error: *** Could not enable any backends.

これには少し驚いた。というのは、quartz は無効になっているのが基本だと思っていたから。

インストールの命令文は次の通り。

export PKG_CONFIG_PATH=$PRJ/gtk+/glib/lib/pkgconfig:$PRJ/gtk+/cairo/lib/pkgconfig:$PRJ/gtk+/pixman-0.22.0/lib/pkgconfig:$PRJ/gtk+/freetype/lib/pkgconfig:$PRJ/gtk+/fontconfig/lib/pkgconfig

./configure --prefix=$PRJ/gtk+/pango-1.31.2

($PRJ はプロジェクトの置かれた階層。)

このエラー通知は pango 最新版(1.32.6)特有の問題だ、という情報をどこかで見たので、三つの版(1.31.2, 1.32.5, 1.32.6)で試してみたが駄目だった。

Cairo の版は 1.12.8 。

わかる人いますか。

お願いします。

Bloehdian

(略)

(一名の回答を省略。)

Bloehdian - 2013年2月1日 午後 12:56

問題の原因がわかった。

Harfbuzz が無いために、背後実行プログラムの読み込みが止められていた。典型的な「auto」地獄だと思う。Harfbuzz が明らかに pango 構築の必須要素であるにもかかわらず、configure は Harfbuzz 検出に失敗した時点では停止しない。奇妙だ。

追記訳註:
pango の構築には、harfbuzz が使用可能な freetype2 有りで構築された fontconfig2 が必要。

カレンダー

12 2025/01 02
S M T W T F S
1 2 4
5 6 7 8 9 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最新コメント

[09/07 NONAME]
[08/18 NONAME]
[05/18 NONAME]
[04/09 NONAME]
[03/21 NONAME]

最新記事

(01/10)
(01/03)
(12/20)
(12/08)
(11/20)
(10/30)
(10/24)
(09/20)
(09/16)
(09/11)
(09/03)
(09/02)
(08/27)
(08/17)
(07/31)
(07/30)
(07/19)
(07/13)
(05/02)
(03/17)
(11/01)
(07/20)
(05/17)
(04/20)
(03/10)

ブログ内検索

広告

バーコード

広告